


Explication détaillée des exemples d'utilisation de déclencheurs dans MySQL
Cet article présente principalement les informations pertinentes de mysql Trigger des exemples d'utilisation détaillés. Les amis dans le besoin peuvent se référer à
MySQL Explication détaillée. de la syntaxe du déclencheur :
Le déclencheur déclencheur est une procédure stockée spéciale , qui insère ( dansensemble ), supprimer (supprimer) ou modifier (update) déclenchent l'exécution lorsque les données d'une table spécifique sont plus petites que les données. les fonctions standard elles-mêmes offrent des capacités de contrôle des données plus sophistiquées et complexes. Le déclencheur n'est pas appelé par le programme, mais déclenché par un certain événement. Appliquer automatiquement les règles métier lorsque les données sont modifiées, souvent utilisées pour renforcer l'intégrité des données contraintes et les règles métier, etc. 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é de la référence. 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;
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.
Le déclencheur est lié à la table nommée tbl_name. tbl_name doit faire référence à une table permanente. Impossible d'associer un déclencheur à une table ou une vue TEMPORAIRE.
trigger_time est le temps d'action du programme déclencheur. Il peut s'agir de 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, vous pouvez utiliser la structure d'instruction composée BEGIN ... END. De cette façon, vous pouvez utiliser les mêmes instructions autorisées dans les sous-programmes stockés
(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 l'autorisation SUPER.
(3). Utilisation du programme de déclenchement
Dans cette section, nous présentons la méthode d'utilisation du programme de déclenchement dans MySQL 5.1 et présentons Il existe restrictions sur l’utilisation des 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 le stockage. Le programme renvoie les données au programme déclencheur via des paramètres).
Le déclencheur ne peut 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 , etc. Cependant, tout comme les sous-programmes stockés, lors de la définition d'un programme déclencheur qui exécute plusieurs instructions, si utilise le programme mysql pour entrer dans le programme déclencheur, le séparateur d'instructions doit être redéfini pour pouvoir utiliser le caractère " dans la définition du programme déclencheur ;". 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 BEFORE 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 ;
Il est plus facile de définir la procédure stockée séparément, puis d'utiliser une simple instruction CALL pour appeler une procédure stockée. procédure 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;
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

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)

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

Simplification de l'intégration des données: AmazonrDSMysQL et l'intégration Zero ETL de Redshift, l'intégration des données est au cœur d'une organisation basée sur les données. Les processus traditionnels ETL (extrait, converti, charge) sont complexes et prennent du temps, en particulier lors de l'intégration de bases de données (telles que AmazonrDSMysQL) avec des entrepôts de données (tels que Redshift). Cependant, AWS fournit des solutions d'intégration ETL Zero qui ont complètement changé cette situation, fournissant une solution simplifiée et à temps proche pour la migration des données de RDSMySQL à Redshift. Cet article plongera dans l'intégration RDSMYSQL ZERO ETL avec Redshift, expliquant comment il fonctionne et les avantages qu'il apporte aux ingénieurs de données et aux développeurs.

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Pour remplir le nom d'utilisateur et le mot de passe MySQL: 1. Déterminez le nom d'utilisateur et le mot de passe; 2. Connectez-vous à la base de données; 3. Utilisez le nom d'utilisateur et le mot de passe pour exécuter des requêtes et des commandes.

1. Utilisez l'index correct pour accélérer la récupération des données en réduisant la quantité de données numérisées SELECT * FROMMLOYEESEESHWHERELAST_NAME = 'SMITH'; Si vous recherchez plusieurs fois une colonne d'une table, créez un index pour cette colonne. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh

Affichez la base de données MySQL avec la commande suivante: Connectez-vous au serveur: MySQL -U Username -P mot de passe Exécuter les bases de données Afficher les bases de données; Commande pour obtenir toutes les bases de données existantes Sélectionnez la base de données: utilisez le nom de la base de données; Tableau de vue: afficher des tables; Afficher la structure de la table: décrire le nom du tableau; Afficher les données: sélectionnez * dans le nom du tableau;
