So aktualisieren Sie den Wert der Spalte „last_dt', wenn Sie die Anweisungen „UPDATE' oder „INSERT IGNORE INTO ~ ON DUPLICATE KEY UPDATE ~' verwenden
P粉633075725
P粉633075725 2023-09-16 13:54:41
0
1
838
Die Spalte „last_dt“ enthält das Datum, an dem die Daten zuletzt geändert wurden. Die Verwaltung erfolgt anders als bei eingefügten Daten. Eingefügte Daten werden von create_dt verwaltet.

Ich möchte den Wert des Aktualisierungsdatums nur ändern, wenn sich andere Spalten außer der Spalte „update_dt“ ändern.

Also hat mir gpt das gegeben:

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

Aber ich finde diese Methode etwas seltsam. Ich habe es tatsächlich getestet und einen Fehler gefunden. Es ist auch möglich, dass ich den Code falsch geschrieben habe.

Gibt es einen besseren Weg? Ist die Antwort von gpt richtig? Ich denke, viele Datenbankadministratoren haben das gleiche Problem gelöst. Ich stelle diese Frage, weil ich keine passende Antwort finden kann.

P粉633075725
P粉633075725

Antworte allen(1)
P粉659518294

我认为我必须使用这个

`date`    TIMESTAMP      NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage