Maison > base de données > tutoriel mysql > Comment insérer des données dans une autre table à l'aide de déclencheurs MySQL ?

Comment insérer des données dans une autre table à l'aide de déclencheurs MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-19 03:51:02
original
892 Les gens l'ont consulté

How to Insert Data into Another Table Using MySQL Triggers?

Programmation des déclencheurs MySQL : insertion dans une autre table

Les déclencheurs MySQL offrent un mécanisme puissant pour automatiser les tâches sur des actions de base de données spécifiques. Cela peut être particulièrement utile pour maintenir la cohérence des données et effectuer des opérations complexes.

Insertion dans une autre table

Pour insérer une ligne dans une autre table lorsqu'une ligne est insérée dans un table particulière, vous pouvez définir un déclencheur après insertion. Voici comment procéder dans MySQL :

CREATE TRIGGER trigger_name
AFTER INSERT ON table_name
FOR EACH ROW
BEGIN
  -- Insert data into another table
  INSERT INTO other_table (column1, column2, ...)
  VALUES (NEW.column1, NEW.column2, ...);
END;
Copier après la connexion

Répondre à vos questions

  • LAST_INSERT_ID() : Oui, LAST_INSERT_ID() est généralement utilisé pour récupérer l'ID de la dernière ligne insérée.
  • Stockage des données de la dernière ligne insérée : Vous pouvez accéder aux données de la dernière ligne de commentaire insérée à l'aide de la NOUVELLE pseudo-table. Il contient des valeurs pour les colonnes de la ligne insérée.
  • Procédures stockées : Les procédures stockées peuvent être utilisées conjointement avec des déclencheurs, mais elles ne sont pas nécessaires pour cette tâche spécifique.
  • Structure du déclencheur : La structure de base d'un déclencheur après insertion est illustrée ci-dessus. Vous pouvez spécifier un nom unique pour le déclencheur, la table à laquelle il s'applique et les actions à effectuer pour chaque ligne insérée.

Exemple

Considérez le exemple suivant :

CREATE TABLE comments (
  comment_id INT NOT NULL AUTO_INCREMENT,
  user_id INT NOT NULL,
  PRIMARY KEY (comment_id)
);

CREATE TABLE activities (
  activity_id INT NOT NULL AUTO_INCREMENT,
  comment_id INT NOT NULL,
  user_id INT NOT NULL,
  PRIMARY KEY (activity_id)
);

CREATE TRIGGER comments_after_insert
AFTER INSERT ON comments
FOR EACH ROW
BEGIN
  -- Insert into the activities table
  INSERT INTO activities (comment_id, user_id)
  VALUES (NEW.comment_id, NEW.user_id);
END;
Copier après la connexion

Ce déclencheur insérera automatiquement une ligne dans le tableau des activités chaque fois qu'une ligne est insérée dans le tableau des commentaires, garantissant que les actions sont enregistrées comme souhaité.

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 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