Maison base de données tutoriel mysql partage d'exemples d'utilisation de déclencheur MySQL

partage d'exemples d'utilisation de déclencheur MySQL

Jan 17, 2018 am 10:06 AM
mysql 分享 触发器

Cet article présente principalement les informations pertinentes sur l'explication détaillée des exemples d'utilisation des déclencheurs MySQL. Les amis qui en ont besoin peuvent s'y référer. J'espère qu'il pourra aider tout le monde.

Explication détaillée de la syntaxe du déclencheur MySQL :

Le déclencheur est une procédure stockée spéciale qui insère (encart), supprime (supprime) ou modifie (met à jour) une table spécifique. L'exécution est déclenchée lorsque les données qu'il contient sont exécutées et disposent de capacités de contrôle des données plus raffinées et complexes que les fonctions standard des données elles-mêmes. Les déclencheurs ne sont pas appelés par un programme, mais sont déclenchés par un événement. Appliquez automatiquement les règles métier lorsque les données sont modifiées, souvent utilisées pour renforcer les contraintes d’intégrité des données et les règles métier. Les déclencheurs peuvent interroger d'autres tables et contenir des instructions SQL répliquées. Les déclencheurs peuvent également être utilisés pour renforcer l’intégrité référentielle. Les déclencheurs peuvent appliquer des contraintes plus complexes que celles définies avec des contraintes de vérification.

(1).Syntaxe CREATE TRIGGER

CREATE TRIGGER trigger_nametrigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt;
Le déclencheur est un objet de base de données nommé lié à la table . Cet objet est activé lorsqu'un événement spécifique se produit sur la table.
Le déclencheur est lié à la table nommée tbl_name. tbl_name doit faire référence à une table permanente. Un déclencheur ne peut pas être associé à une table ou une vue TEMPORAIRE.
trigger_time est le temps d'action du programme déclencheur. Il peut être AVANT ou APRÈS pour indiquer si le déclencheur est déclenché avant ou après l'instruction qui l'active.
trigger_event spécifie le type d'instruction qui active le programme déclencheur. trigger_event peut avoir l'une des valeurs suivantes :

(1).INSERT : Le déclencheur est activé lorsqu'une nouvelle ligne est insérée dans le tableau, par exemple via INSERT, LOAD DATA et REPLACE
déclarations.
(2).UPDATE : Le déclencheur est activé lorsqu'une ligne est modifiée, par exemple via l'instruction UPDATE.
(3).DELETE : le déclencheur est activé lorsqu'une ligne est supprimée de la table, par exemple via les instructions DELETE et REPLACE.

Il est important de noter que trigger_event n'est pas très similaire à l'instruction SQL qui active le programme déclencheur via des opérations de table. Par exemple, le déclencheur BEFORE sur INSERT peut être activé non seulement par l'instruction INSERT, mais également par l'instruction LOAD DATA. Un exemple qui peut prêter à confusion est INSERT INTO .. ​​​​ON DUPLICATE UPDATE... Syntaxe : le déclencheur BEFORE INSERT s'activera pour chaque ligne, suivi du déclencheur AFTER INSERT, ou du déclencheur BEFORE UPDATE et AFTER UPDATE, selon Y a-t-il des clés en double activées la rangée.

Il ne peut pas y avoir deux déclencheurs pour une table donnée avec le même moment d'action et le même événement de déclenchement. Par exemple, pour une certaine table, il ne peut pas y avoir deux déclencheurs BEFORE UPDATE. Mais il peut y avoir 1 déclencheur BEFORE UPDATE et 1 déclencheur BEFORE INSERT, ou 1 déclencheur BEFOREUPDATE et 1 déclencheur AFTER UPDATE. trigger_stmt est l'instruction exécutée lorsque le déclencheur est activé. Si vous prévoyez d'exécuter plusieurs instructions, utilisez la structure d'instruction composée BEGIN ... END. De cette manière, les mêmes instructions autorisées dans les sous-programmes stockés peuvent être utilisées

(2) Syntaxe DROP TRIGGER

DROP TRIGGER[schema_name.]trigger_name supprime le programme déclencheur. . Le nom du schéma (schema_name) est facultatif. Si le schéma est omis, le déclencheur sera supprimé du schéma actuel.

Remarque : lors de la mise à niveau d'une version de MySQL antérieure à MySQL 5.0.10 vers 5.0.10 ou version ultérieure (y compris toutes les versions de MySQL 5.1), tous les déclencheurs doivent être supprimés avant la mise à niveau et les recréer ultérieurement, sinon. DROP TRIGGER ne fonctionne pas après la mise à niveau. L'instruction DROP TRIGGER nécessite le privilège SUPER.

(3). Utilisation des programmes déclencheurs

Dans cette section, nous présentons la méthode d'utilisation des programmes déclencheurs dans MySQL 5.1 et introduisons l'utilisation des programmes déclencheurs.

Un déclencheur est un objet de base de données nommé associé à une table qui sera activé lorsqu'un événement spécifique se produit sur la table. Dans certaines utilisations de déclencheurs, il peut être utilisé pour vérifier des valeurs insérées dans un tableau, ou pour effectuer des calculs sur des valeurs impliquées dans une mise à jour.

Le programme déclencheur est lié à la table. Lorsqu'une instruction INSERT, DELETE ou UPDATE est exécutée sur la table, le programme déclencheur sera activé. Les déclencheurs peuvent être configurés pour s’activer avant ou après l’exécution d’une instruction. Par exemple, un déclencheur peut être activé avant la suppression de chaque ligne du tableau ou après la mise à jour de chaque ligne. Pour créer un déclencheur ou supprimer un déclencheur, utilisez l'instruction CREATE TRIGGER ou DROP TRIGGER. Un déclencheur ne peut pas appeler une procédure stockée qui renvoie des données au client, ni utiliser du SQL dynamique à l'aide de l'instruction CALL (qui permet aux procédures stockées de renvoyer des données). au déclencheur via le programme de paramètres).

 Les déclencheurs ne peuvent pas utiliser d'instructions qui démarrent ou terminent explicitement ou implicitement des transactions, telles que START TRANSACTION,
COMMIT ou ROLLBACK.

Utilisez les mots-clés OLD et NEW pour accéder aux colonnes des lignes affectées par le déclencheur (OLD et NEW ne sont pas sensibles à la casse).

Dans le déclencheur INSERT, seul NEW.col_name peut être utilisé, pas d'anciennes lignes. Dans un déclencheur DELETE, seul OLD.col_name peut être utilisé, aucune nouvelle ligne. Dans le déclencheur UPDATE, vous pouvez utiliser OLD.col_name pour faire référence à une colonne dans une ligne avant la mise à jour, ou NEW.col_name pour faire référence à une colonne dans la ligne mise à jour.

Les colonnes nommées avec OLD sont en lecture seule. Vous pouvez le référencer, mais pas le modifier. Pour les colonnes nommées avec NEW, vous pouvez y faire référence si vous disposez de l'autorisation SELECT. Dans le programme déclencheur BEFORE, si vous disposez de l'autorisation UPDATE, vous pouvez utiliser "SET NEW.col_name = value" pour modifier sa valeur. Cela signifie que vous pouvez utiliser des déclencheurs pour modifier les valeurs qui seront insérées dans de nouvelles lignes ou pour mettre à jour les valeurs dans les lignes. Dans le programme déclencheur BEFORE, la valeur NEW de la colonne AUTO_INCREMENT est 0, ce qui n'est pas le numéro de séquence qui sera automatiquement généré lorsqu'un nouvel enregistrement est effectivement inséré.

En utilisant la structure BEGIN ...END, vous pouvez définir un programme déclencheur qui exécute plusieurs instructions. Dans le bloc BEGIN, vous pouvez également utiliser d'autres syntaxes autorisées dans les sous-programmes stockés, telles que les conditions et les boucles. Cependant, tout comme les sous-programmes stockés, lors de la définition d'un programme déclencheur qui exécute plusieurs instructions, si vous utilisez le programme MySQL pour entrer dans le programme déclencheur, vous devez redéfinir le séparateur d'instructions afin de pouvoir utiliser le caractère ";" dans le programme déclencheur. définition. Dans l’exemple suivant, ces points sont démontrés. Dans cet exemple, un déclencheur UPDATE est défini qui vérifie la nouvelle valeur qui sera utilisée lors de la mise à jour de chaque ligne et modifie la valeur afin qu'elle soit comprise entre 0 et 100. Il doit s'agir d'un déclencheur AVANT car la valeur doit être vérifiée avant d'être utilisée pour mettre à jour la ligne :

mysql> delimiter //
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account
   -> FOR EACH ROW
   -> BEGIN
   -> IF NEW.amount < 0 THEN
   -> SET NEW.amount = 0;
   -> ELSEIF NEW.amount > 100 THEN
   -> SET NEW.amount = 100;
   -> END IF;
   -> END;//
mysql> delimiter ;
Copier après la connexion

Il est plus facile de définir la procédure stockée séparément, puis d'utiliser une simple instruction CALL appelle une procédure stockée à partir d'une procédure de déclenchement. Cette méthode est également utile si vous prévoyez d'appeler le même sous-programme à partir de plusieurs programmes déclencheurs. Lors de l'exécution du programme déclencheur, MySQL gère les erreurs comme suit :

(1) Si le programme déclencheur BEFORE échoue, l'opération sur la ligne correspondante ne sera pas effectuée.
(2) Le déclencheur AFTER n'est exécuté que si le déclencheur BEFORE (le cas échéant) et l'opération sur la ligne ont été exécutés avec succès.
(3) Si une erreur se produit lors de l'exécution du programme déclencheur AVANT ou APRES, cela entraînera l'échec de l'intégralité de l'instruction qui appelle le programme déclencheur.
(4) Pour les tables transactionnelles, si le programme déclencheur échoue (et l'échec de l'instruction entière qui en résulte), toutes les modifications effectuées par l'instruction seront annulées. Pour les tables non transactionnelles, ce type de restauration ne peut pas être effectué, donc même si l'instruction échoue, toutes les modifications apportées avant l'échec sont toujours valides.

Exemple 1 :

mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW SET @sum = @sum + NEW.amount;
Copier après la connexion

Recommandations associées :

Les déclencheurs MySQL sont utilisés pour les informations dans les projets PHP Sauvegarde, restaurer et effacer

Questions sur les déclencheurs MySQL

Présentation des déclencheurs MySQL et comment créer et supprimer des déclencheurs

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL: une introduction à la base de données la plus populaire au monde MySQL: une introduction à la base de données la plus populaire au monde Apr 12, 2025 am 12:18 AM

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Pourquoi utiliser MySQL? Avantages et avantages Pourquoi utiliser MySQL? Avantages et avantages Apr 12, 2025 am 12:17 AM

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Comment créer une nouvelle connexion à MySQL dans Navicat Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

See all articles