Как сместить даты в базе данных MySQL на 1 секунду? - PullRequest
4 голосов
/ 14 апреля 2009

Я импортировал кучу постов на сайт Wordpress с одинаковой датой. Я хочу изменить даты публикации, чтобы они смещались на одну секунду.

Меня беспокоит, что может возникнуть проблема с производительностью, когда все даты совпадают.

Кто-нибудь знает быстрый способ сделать это, используя phpMyAdmin для редактирования базы данных MySQL или каким-либо другим способом?

Ответы [ 4 ]

4 голосов
/ 14 апреля 2009

Вы можете установить их все как «сейчас» + идентификатор.

Может выглядеть так:

 UPDATE  wp_posts
 SET     createdDate = DATE_ADD(now(), INTERVAL wp_posts.wp_id SECOND);
3 голосов
/ 14 апреля 2009

Прежде чем связываться с этим, я предлагаю вам убедиться, что на самом деле есть проблемы с одновременным временем.

Я довольно часто нахожу, что искажение данных, как это, имеет непредвиденные последствия. И я был бы немного удивлен, если бы проблема действительно была значительной.

Мне кажется, что я вижу предложения, в которых для всех строк будет установлено одинаковое значение смещения.

Предполагая, что у вас есть целочисленный суррогатный ключ, а строки смежны, вы можете использовать

ОБНОВЛЕНИЕ таблицы
SET mydate = DATE_ADD (my_date, ИНТЕРВАЛЬНЫЙ ИД - ВТОРОЙ)
ГДЕ ИД МЕЖДУ И;

1 голос
/ 14 апреля 2009
UPDATE table SET mydate = DATE_ADD(my_date, INTERVAL 1 SECOND);
0 голосов
/ 14 апреля 2009
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...