suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wenn eine Zeile gelöscht wird, wird das Einfügen in eine andere Tabelle ausgelöst

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粉741223880P粉741223880284 Tage vor363

Antworte allen(1)Ich werde antworten

  • P粉546138344

    P粉5461383442024-02-22 12:38:58

    被删除的行的列在触发器中可用作为 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;

    Antwort
    0
  • StornierenAntwort