Si une ligne est supprimée, déclenchez son insertion dans une autre table
P粉741223880
P粉741223880 2024-02-21 15:22:36
0
1
381

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粉741223880
P粉741223880

répondre à tous(1)
P粉546138344

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;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal