Maison >base de données >tutoriel mysql >Comment créer un déclencheur MySQL pour insérer des données dans une autre table après une INSERT ?

Comment créer un déclencheur MySQL pour insérer des données dans une autre table après une INSERT ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-26 20:02:10665parcourir

How to Create a MySQL Trigger to Insert Data into Another Table After an INSERT?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn