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 ~"
P粉633075725
P粉633075725 2023-09-16 13:54:41
0
1
821
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粉633075725
P粉633075725

répondre à tous(1)
P粉659518294

Je pense que je dois utiliser ça

`date`    TIMESTAMP      NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!