Como compensar as datas em um banco de dados MySQL por 1 segundo?
-
09-09-2019 - |
Pergunta
Eu importei um monte de postagens para um site do WordPress que tem exatamente a mesma data. Eu gostaria de editar as datas do post para que elas sejam compensadas em um segundo.
Minha preocupação é que possa haver um problema de desempenho quando todas as datas são iguais.
Alguém sabe uma maneira rápida de fazer isso usando o PHPMyadmin para editar o banco de dados MySQL ou algum outro método?
Solução
Você pode definir todos eles como 'agora' + id.
Pode parecer assim;
UPDATE wp_posts
SET createdDate = DATE_ADD(now(), INTERVAL wp_posts.wp_id SECOND);
Outras dicas
Antes de mexer com isso, sugiro que você certifique -se de que, de fato, tenha um problema com os tempos simultâneos.
Muitas vezes acho que mexer com dados como esse tem consequências não intencionais. E eu ficaria moderadamente surpreso se o problema for realmente significativo.
Parece -me que estou vendo propostas que definirão todas as linhas para o mesmo valor de deslocamento.
Supondo que você tenha uma chave substituta inteira e as linhas são adjacentes, você pode usar
Tabela de atualização
Definir mydate = date_add (my_date, ID de intervalo - segundo)
Onde id entre e;
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 em uma única consulta, se você não puder manter o estado da sessão:
UPDATE mytable,
(
SELECT @r := '2009-04-14'
) q
SET mydate = (@r := @r + INTERVAL 1 SECOND)