Maison > Questions et réponses > le corps du texte
J'essaie de créer un déclencheur qui copie une ligne supprimée dans une autre table. Jusqu'à présent, lorsque je supprime une ligne, je copie simplement l'intégralité du premier tableau dans le deuxième tableau, ce qui n'est pas très utile.
Le tableau 1 contient les commentaires avec comment_id, file_id, user_id, comment_text, comment_datetime et parent
Le tableau 2 est comment_log, qui contient delete_comment_id, file_id, user_id, comment_text, comment_datetime et comment_deletion_datetime.
Je souhaite donc uniquement stocker les commentaires supprimés par les utilisateurs, modérateurs ou administrateurs dans comment_log.
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
C'est ce que j'ai jusqu'à présent, j'ai essayé des choses comme un OÙ derrière mais je ne sais pas où le mettre. old.comment_id devrait me donner l'ancien identifiant, mais je ne sais pas comment obtenir le commentaire avec cet identifiant dans la table des commentaires.
P粉5461383442024-02-22 12:38:58
La colonne de la ligne supprimée est disponible dans le déclencheur en tant que OLD.*
, je ferais donc ceci :
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;