Wenn eine Zeile gelöscht wird, wird das Einfügen in eine andere Tabelle ausgelöst
P粉741223880
P粉741223880 2024-02-21 15:22:36
0
1
378

Ich versuche einen Trigger zu erstellen, der eine gelöschte Zeile in eine andere Tabelle kopiert. Wenn ich bisher eine Zeile lösche, kopiere ich einfach die gesamte erste Tabelle in die zweite Tabelle, was nicht sehr nützlich ist.

Tabelle 1 enthält die Kommentare mit comment_id, file_id, user_id, comment_text, comment_datetime und parent

Tabelle 2 ist comment_log, das die gelöschte_Kommentar-ID, die Datei-ID, die Benutzer-ID, den Kommentartext, das Kommentardatum und das Löschdatum des Kommentars enthält.

Ich möchte also nur von Benutzern, Moderatoren oder Administratoren gelöschte Kommentare in comment_log speichern.

INSERT INTO comment_log(deleted_comment_id, file_id, user_id, comment_text,comment_datetime, comment_deletion_datetime)
SELECT comment.comment_id, file_id, user_id, comment_text, comment_datetime, CURRENT_TIMESTAMP
FROM comment

Das ist es, was ich bisher habe. Ich habe Dinge wie ein WO dahinter ausprobiert, weiß aber nicht, wo ich es hinstellen soll. old.comment_id sollte mir die alte ID geben, aber ich weiß nicht, wie ich den Kommentar mit dieser ID aus der Kommentartabelle abrufen kann.

P粉741223880
P粉741223880

Antworte allen(1)
P粉546138344

被删除的行的列在触发器中可用作为 OLD.*,所以我会这样做:

INSERT INTO comment_log
SET deleted_comment_id = OLD.comment_id, 
    file_id = OLD.file_id, 
    user_id = OLD.user_id,
    comment_text = OLD.comment_text,
    comment_datetime = OLD.comment_datetime, 
    comment_deletion_datetime = CURRENT_TIMESTAMP;
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage