Maison > base de données > tutoriel mysql > le corps du texte

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

Susan Sarandon
Libérer: 2024-11-26 20:02:10
original
523 Les gens l'ont consulté

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;
Copier après la connexion

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 ;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal