


Comment créer un déclencheur MySQL pour insérer des données dans une autre table après une INSERT ?
Nov 26, 2024 pm 08:02 PMProgrammation 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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)?
