Maison  >  Article  >  base de données  >  Explication détaillée du déclencheur d'insertion (insert) dans MySQL

Explication détaillée du déclencheur d'insertion (insert) dans MySQL

巴扎黑
巴扎黑original
2017-05-19 15:25:426596parcourir

INSÉRER le déclencheur

En gardant à l'esprit les connaissances de base précédentes, nous examinons maintenant chaque type de déclencheur pris en charge et leurs différences.

Les déclencheurs INSERT s'exécutent avant ou après l'exécution de l'instruction INSERT. Vous devez connaître les points suivants :

1. Dans le code du déclencheur INSERT, vous pouvez référencer une table virtuelle nommée NEW pour accéder à la ligne insérée

2 . Dans le déclencheur BEFORE INSERT, la valeur dans NEW peut également être mise à jour (permettant de modifier la valeur insérée

3 Pour la colonne AUTO_INCREMENT, NEW contient 0 avant l'exécution de INSERT et contient 0 après INSERT) ; exécuté. Nouvelle valeur générée automatiquement.

Voici un exemple (un exemple pratique et utile). Les colonnes AUTO_INCREMENT ont des valeurs automatiquement attribuées par MySQL. façon de déterminer la nouvelle valeur générée, mais voici une meilleure façon :

Entrée :

create trigger neworder after insert on orders for each row select new .order_num;

Analyse : Ce code crée un déclencheur appelé neworder qui suit APRÈS l'exécution des commandes INSERT ON. Lors de l'insertion d'une nouvelle commande dans la table des commandes, MySQL génère un nouveau numéro de commande et l'enregistre dans order_num. Le déclencheur obtient cette valeur de NEW.order_num et la renvoie. Ce déclencheur doit s'exécuter AFTER INSERT car le nouveau order_num n'a pas été généré avant l'exécution de l'instruction BEFORE INSERT. L'utilisation de ce déclencheur renverra toujours un nouveau numéro de commande pour chaque insertion dans les commandes.

Pour tester ce déclencheur, essayez d'insérer une nouvelle ligne comme celle-ci :

Entrée :

insert into orders(order_date,cust_id) values(now(),10001);

Sortie :

Explication détaillée du déclencheur dinsertion (insert) dans MySQL

Analyse : les commandes contiennent 3 colonnes. order_date et cust_id doivent être donnés, order_num est automatiquement généré par MySQL, et maintenant order_num est automatiquement renvoyé.

AVANT ou APRÈS ? Généralement, AVANT est utilisé pour la validation et la purification des données (le but est de s'assurer que les données insérées dans le tableau sont bien les données requises). Cette astuce s'applique également aux déclencheurs UPDATE.

[Recommandations associées]

1. Tutoriel vidéo gratuit MySQL

2 Introduction aux déclencheurs MySQL et comment créer et supprimer des déclencheurs.

3. Tutoriel sur le jeu de caractères MySQL et la séquence de classement

4 Introduction au jeu de caractères MySQL et à la séquence de classement

<.>5.

Explication détaillée des transactions MySQL sur l'utilisation des points de rétention et la modification du comportement de validation par défaut

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