Programmation d'un déclencheur MySQL pour insérer des données dans une autre table
Les déclencheurs MySQL permettent l'exécution d'actions prédéfinies lorsque certains événements se produisent dans une table de base de données . Dans ce cas, l'objectif est de créer un déclencheur qui insère une ligne dans une autre table lorsqu'une ligne est insérée dans une table spécifique.
Comment récupérer l'ID de la dernière ligne insérée
Pour capturer l'ID de la dernière ligne insérée, il est nécessaire d'utiliser la fonction LAST_INSERT_ID() au sein du déclencheur. Cette fonction renvoie l'ID de la ligne insérée la plus récemment.
Stockage des données de la dernière ligne insérée à utiliser dans l'instruction INSERT
Pour stocker correctement les données de la dernière ligne insérée ligne de commentaire, elle peut être stockée dans des variables locales dans le déclencheur. Par exemple, si la colonne ID utilisateur est nommée user_id et la colonne de texte du commentaire est nommée comment_text, vous pouvez utiliser la syntaxe suivante :
DECLARE user_id INTEGER; DECLARE comment_text VARCHAR(255); SET user_id = NEW.user_id; SET comment_text = NEW.comment_text;
Utilisation de procédures stockées
Bien que les déclencheurs soient utiles pour exécuter automatiquement des actions en réponse à certains événements, leurs fonctionnalités sont limitées et peuvent ne pas convenir aux opérations complexes. Dans de tels cas, il est recommandé d'utiliser une combinaison de déclencheurs et de procédures stockées.
Structure du déclencheur
La structure de base du déclencheur ressemblerait à la suivante :
DELIMITER $$ CREATE TRIGGER comments_after_ins_trig AFTER INSERT ON comments FOR EACH ROW BEGIN -- Grab the ID of the last inserted row SET @last_inserted_id = LAST_INSERT_ID(); -- Store data from the last inserted row into local variables SET @user_id = NEW.user_id; SET @comment_text = NEW.comment_text; -- Perform the INSERT into the activities table INSERT INTO activities (user_id, comment_text) VALUES (@user_id, @comment_text); END; $$ DELIMITER ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!