Comment compenser les dates dans une base de données MySQL de 1 seconde?
-
09-09-2019 - |
Question
J'ai importé un tas de messages dans un site Wordpress que tous ont la même date exacte. Je voudrais modifier les dates de poste afin qu'ils soient compensés par une seconde.
Ma préoccupation est qu'il peut y avoir un problème de performance lorsque toutes les dates sont les mêmes.
Quelqu'un sait rapidement pour y parvenir en utilisant phpMyAdmin pour éditer la base de données MySQL ou une autre méthode?
La solution
Vous pouvez les mettre tous à être 'maintenant' + id.
Il pourrait ressembler;
UPDATE wp_posts
SET createdDate = DATE_ADD(now(), INTERVAL wp_posts.wp_id SECOND);
Autres conseils
Avant de jouer avec cela, je vous suggère de vous assurer que, en fait, ont un problème avec des temps simultanés.
Je trouve assez souvent que de jouer avec les données comme cela 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 définiront toutes les lignes à la même valeur de décalage.
En supposant que vous avez une clé de substitution entier, et les lignes adjacentes, vous pouvez utiliser
Tableau MISE A JOUR
SET mydate = DATE_ADD (my_date, id INTERVALLE - DEUXIÈME)
OÙ id ENTRE ET;
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);
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)