Heim  >  Fragen und Antworten  >  Hauptteil

So aktualisieren Sie den Wert der Spalte „last_dt“, wenn Sie die Anweisungen „UPDATE“ oder „INSERT IGNORE INTO ~ ON DUPLICATE KEY UPDATE ~“ verwenden

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粉633075725P粉633075725399 Tage vor799

Antworte allen(1)Ich werde antworten

  • P粉659518294

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

    我认为我必须使用这个

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

    Antwort
    0
  • StornierenAntwort