Maison  >  Questions et réponses  >  le corps du texte

Comment mettre à jour la valeur de la colonne "last_dt" lors de l'utilisation des instructions "UPDATE" ou "INSERT IGNORE INTO ~ ON DUPLICATE KEY UPDATE ~"

La colonne

last_dt est la date à laquelle les données ont été modifiées pour la dernière fois. Elle est gérée différemment des dates insérées. Les dates insérées sont gérées par create_dt.

Je souhaite uniquement modifier la valeur de la date de mise à jour lorsque d'autres colonnes, à l'exception de la colonne update_dt, changent.

Alors gpt m'a donné ça :

UPDATE your_table
SET column1 = %s, column2 = %s, column3 = %s, update_date = IF(
    column1 <> %s OR column2 <> %s OR column3 <> %s,
    NOW(), update_date
)
WHERE id = %s

Mais je pense que cette méthode est un peu étrange. En fait, je l'ai testé et j'ai trouvé une erreur. Il est également possible que j'aie mal écrit le code.

Y a-t-il une meilleure façon ? La réponse fournie par gpt est-elle correcte ? Je pense que de nombreux administrateurs de bases de données ont résolu le même problème. Je pose cette question parce que je ne trouve pas de réponse appropriée.

P粉633075725P粉633075725399 Il y a quelques jours797

répondre à tous(1)je répondrai

  • P粉659518294

    P粉6595182942023-09-17 11:25:31

    Je pense que je dois utiliser ça

    `date`    TIMESTAMP      NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    répondre
    0
  • Annulerrépondre