Maison > base de données > tutoriel mysql > le corps du texte

Parlons des déclencheurs de base de données MYSQL

WBOY
Libérer: 2022-04-12 20:48:20
avant
1709 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur mysql, qui présente principalement des problèmes liés aux déclencheurs, notamment ce que sont les déclencheurs, comment créer des déclencheurs dans la base de données et si les déclencheurs peuvent remplacer les clés étrangères, jetons-y un coup d'œil, j'espère cela sera utile à tout le monde.

Parlons des déclencheurs de base de données MYSQL

Apprentissage recommandé : Tutoriel vidéo MySQL

Comprenez d'abord les déclencheurs, puis discutez s'ils peuvent remplacer complètement les clés étrangères

Que sont les déclencheurs ?

Concept : Le déclencheur est une méthode fournie par le serveur SQL aux programmeurs et aux analystes de données pour garantir l'intégrité des données. Il s'agit d'une procédure stockée spéciale liée aux événements de table. Son exécution n'est pas effectuée par des appels de programme non lancés manuellement, mais. sont déclenchés par des événements. Par exemple, lorsqu'une table est exploitée (insertion, suppression, mise à jour), son exécution sera activée. Les déclencheurs sont souvent utilisés pour appliquer des contraintes d’intégrité des données et des règles métier. Les déclencheurs peuvent être trouvés dans les dictionnaires de données DBA_TRIGGERS et USER_TRIGGERS. Un déclencheur SQL3 est une instruction qui peut être automatiquement exécutée par le système pour modifier la base de données.

  • En termes simples, un déclencheur est un dispositif de déclenchement, et une opération est stockée dans l'appareil. Cet appareil a une condition de déclenchement Lorsqu'une certaine condition est remplie, l'appareil sera déclenché et le dispositif de déclenchement exécutera une opération stockée.

Comment créer un déclencheur dans la base de données

Créer une instance de déclencheur (mot clé : déclencheur)

Exemple 1 : Créer une table utilisateur (ID utilisateur, nom d'utilisateur) et créer un déclencheur (Lorsque les données sont insérées dans la table utilisateur, un identifiant globalement unique est automatiquement généré)

Créez d'abord la table utilisateur

create table user(
id int PRIMARY KEY,
name varchar(20)
);
Copier après la connexion

Parlons des déclencheurs de base de données MYSQL
Créez un déclencheur

-- 建立触发器名为tt
create TRIGGER tt
-- 触发条件,向user表中插入数据时启动触发器
BEFORE insert on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN 
set new.id=UUID();
END
Copier après la connexion

Le déclencheur que vous venez de créer (voir le déclencheur sous la base de données actuelle Tous les codes de déclenchement affichent les déclencheurs)
Parlons des déclencheurs de base de données MYSQL
Effet : Insérez trois noms d'utilisateur dans le tableau et générez automatiquement trois ID

insert user(name) VALUE('张三'),('李四'),('王五')
Copier après la connexion

Parlons des déclencheurs de base de données MYSQL
Exemple 2 : Créez une autre table de commande DD (ID de commande, nom du produit , ID utilisateur), créer un déclencheur tq1 (lorsqu'un utilisateur est supprimé, la commande de l'utilisateur sera également supprimée)
Construire une table

create table DD(
ddid int PRIMARY KEY,
ddname VARCHAR(20),
userid VARCHAR(50)
)
Copier après la connexion

Parlons des déclencheurs de base de données MYSQL
Créer un déclencheur

delimiter $
-- 建立触发器名为tq
create TRIGGER tq1
-- 触发条件,再dd表删除数据之后启动触发器
AFTER DELETE on user
-- 检查表中每一行,对新插入的数据进行操作
for EACH ROW
-- 执行操作
BEGIN  
DELETE FROM dd WHERE old.id=userid;
END $ 
delimiter ;
Copier après la connexion

Parlons des déclencheurs de base de données MYSQL
à la table Ajouter deux éléments de données
Parlons des déclencheurs de base de données MYSQL

Effet : Supprimez l'utilisateur dans la table utilisateur, et les enregistrements de la table dd seront également supprimés
Supprimez Zhang San

delete from user WHERE name='张三'
Copier après la connexion

Parlons des déclencheurs de base de données MYSQL
Parlons des déclencheurs de base de données MYSQL

Le déclencheur peut-il complètement remplacez la clé externe

  • Si le même effet peut être obtenu en utilisant des clés étrangères dans l'exemple 2 ci-dessus, cela signifie-t-il que les déclencheurs peuvent faire tout ce que les clés étrangères peuvent faire, et que les déclencheurs qui ne peuvent pas faire ce que les clés étrangères ne peuvent pas faire peuvent également fais-le? ?
  • Par rapport aux clés étrangères, les déclencheurs ont une plus grande flexibilité et plus de fonctions, et peuvent exécuter plus de fonctions, dans une certaine mesure, ils peuvent remplacer les clés étrangères et réaliser les fonctions des clés étrangères.
  • Les déclencheurs peuvent également être utilisés pour renforcer l'intégrité référentielle afin que lorsque des lignes sont ajoutées, mises à jour ou supprimées dans plusieurs tables, les relations définies entre ces tables soient préservées. Cependant, le meilleur moyen de garantir l’intégrité référentielle consiste à définir les contraintes de clé primaire et de clé étrangère dans les tables associées. Si vous utilisez un diagramme de base de données, vous pouvez créer des relations entre les tables pour créer automatiquement des contraintes de clé étrangère.

Résumé : Les déclencheurs peuvent remplacer les clés étrangères dans certains cas, mais pas dans toutes les situations. Les clés étrangères et les déclencheurs peuvent également être utilisés ensemble

Apprentissage recommandé : Tutoriel vidéo MySQL

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!

Étiquettes associées:
source:csdn.net
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!