2009-04-14 8 views
4

J'ai importé un tas de messages dans un site Wordpress qui ont tous exactement la même date. Je souhaite modifier les dates de publication afin qu'elles soient décalées d'une seconde. Mon problème est qu'il peut y avoir un problème de performance lorsque toutes les dates sont les mêmes. Quelqu'un sait-il comment le faire rapidement en utilisant phpMyAdmin pour éditer la base de données MySQL ou une autre méthode?Comment faire pour compenser les dates dans une base de données MySQL par 1 seconde?

Répondre

4

Vous pouvez les définir tous comme 'maintenant' + ID.

Cela pourrait ressembler à;

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

Ou dans une seule requête, si votre ne peut pas garder l'état de session:

UPDATE mytable, 
     (
     SELECT @r := '2009-04-14' 
     ) q 
SET  mydate = (@r := @r + INTERVAL 1 SECOND) 
3

Avant de jouer avec cela, je vous suggère de vous assurer que, en fait, ont un problème avec temps simultanés.

Je trouve souvent que jouer avec les données comme ça a des conséquences inattendues. Et je serais modérément surpris si le problème est vraiment important.

Il me semble que je vois des propositions qui vont mettre toutes les lignes à la même valeur de décalage.

En supposant que vous avez un nombre entier clé de substitution, et les lignes adjacentes, vous pouvez utiliser

UPDATE table
SET mydate = DATE_ADD (my_date, id INTERVALLE - SECOND)
OU id ENTRE ET;

Questions connexes