Maison  >  Article  >  base de données  >  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
Mary-Kate Olsenoriginal
2024-11-19 03:51:02831parcourir

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;

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;

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