كيفية تعويض التواريخ في قاعدة بيانات MySQL بحلول 1 ثانية؟

StackOverflow https://stackoverflow.com/questions/747954

سؤال

لقد قمت باستيراد مجموعة من الوظائف إلى موقع WordPress الذي يحتوي على نفس التاريخ بالضبط. أرغب في تحرير تواريخ النشر حتى يتم تعويضها من قبل ثانية واحدة.

قلقي هو أنه قد تكون هناك مشكلة في الأداء عندما تكون جميع التواريخ هي نفسها.

أي شخص يعرف طريقة سريعة للحصول على هذا القيام به باستخدام PHPMyAdmin لتحرير قاعدة بيانات MySQL أو طريقة أخرى؟

هل كانت مفيدة؟

المحلول

يمكنك ضبطهم جميعا على أن يكونوا "الآن" + معرف.

قد تبدو كذلك؛

 UPDATE  wp_posts
 SET     createdDate = DATE_ADD(now(), INTERVAL wp_posts.wp_id SECOND);

نصائح أخرى

قبل الفوضى مع هذا، أقترح عليك أن تتأكد من وجود مشكلة في الأوقات المتزامنة.

غالبا ما أجد أن العبث مع البيانات مثل هذا له عواقب غير مقصودة. وسأفاجأ بشكل معتدل إذا كانت المشكلة مهمة حقا.

يبدو لي أن أرى مقترحات ستضع جميع الصفوف بنفس قيمة الإزاحة.

على افتراض أن لديك مفتاح عدد صحيح بديل، والصفوف مجاورة، يمكنك استخدامها

تحديث الجدول
تعيين mydate = date_add (my_date، معرف الفاصل - الثانية)
حيث معرف بين و؛

UPDATE table SET mydate = DATE_ADD(my_date, INTERVAL 1 SECOND);
SET @r := '2009-04-14';
UPDATE  mytable
SET     mydate = (@r := @r + INTERVAL 1 SECOND);

أو في استعلام واحد، إذا لم تتمكن من الحفاظ على حالة الجلسة:

UPDATE  mytable,
        (
        SELECT  @r := '2009-04-14'
        ) q
SET     mydate  = (@r := @r + INTERVAL 1 SECOND)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top