Maison > Article > base de données > Comparaison des cas utilisant des déclencheurs dans Oracle et des déclencheurs dans MySQL
Système de gestion de bases de données relationnelles MySQL
MySQL est un petit système de gestion de bases de données relationnelles open source développé par la société suédoise MySQL AB. MySQL est largement utilisé sur les sites Web de petite et moyenne taille sur Internet. En raison de sa petite taille, de sa vitesse rapide, de son faible coût total de possession et surtout des caractéristiques de l'open source, de nombreux sites Web de petite et moyenne taille choisissent MySQL comme base de données de site Web afin de réduire le coût total de possession d'un site Web.
Cet article présente principalement la comparaison de cas de l'utilisation des déclencheurs par Oracle et de l'utilisation des déclencheurs par MySQL. Cet article l'explique à travers des exemples et vous donne une introduction très détaillée. it Pour référence,
1. Déclencheurs
1. Les déclencheurs sont stockés en tant qu'objets indépendants dans la base de données,
2. Les déclencheurs n'ont pas besoin d'être appelés, ils sont Un événement déclenche l'opération
3. Les déclencheurs ne peuvent pas recevoir de paramètres
-- Application de déclenchement
Par exemple : Xiaonei.com, Kaixin.com, facebook, lorsque vous Publier un journal et avertir automatiquement ses amis consiste en fait à commencer par ajouter un journal, puis à écrire des entrées dans le tableau.
-- Les déclencheurs sont très efficaces
Exemple : Pour les publications sur le forum, chaque fois qu'une publication est insérée, vous souhaitez synchroniser l'heure de la dernière publication et le nombre total de champs de publications dans la table du forum. À l’heure actuelle, l’utilisation de déclencheurs sera très efficace.
2. Oracle utilise PL/SQL pour écrire des déclencheurs
1.--Syntaxe générale pour créer des déclencheurs en PL/SQL
create [or replace] trigger trigger_name {before | after} {insert | delete | update [of column[,column ... ]]} on table_name [for each row] [where condition] --trigger_body; begin end;
2.--Exercice
--问题3.使用:old 和 :new 操作符 create or replace trigger tri_update after update on employees for each row begin dbms_output.put_line('更新前:'||:old.salary||' 更新后:'||:new.salary); end; --问题2.编写一个触发器,在向 emp 表中插入记录时 打印'hello' create or replace trigger tri_update after insert on emp begin dbms_output.put_line('ok'); end; --问题1.一个helloworld级别的触发器 --创建一个触发器,在更新employees表的时候触发 create or replace trigger tri_update after update on employees for each row --想在最后执行完打印一个ok,把这句话去掉 begin dbms_output.put_line('ok'); end; --执行 update employees set salary = salary+1 where department_id = 80
3. Utilisation de déclencheurs dans MySql
--假设有两张表 board 和 article create table board( id int primary key auto_increment, name varchar(50), articleCount int ); create table article( id int primary key auto_increment, title varchar(50), bid int references board(id) ); --创建一个触发器 delimiter $$ create trigger insertArticle_trigger after insert on article for each row begin update board set articleCount=articleCount+1 where id = new.bid; end; $$ delimiter ; --当我们对article表执行插入操作的是后就会触发这个触发器 insert into board values(null,'test_boardname',0); insert into article values(null,'test_title',1); --执行完这条插入语句后,board表中的articleCount字段值回+1;这个操作由触发器完成。
Ce qui précède est la comparaison des cas d'utilisation de déclencheurs dans Oracle et d'utilisation de déclencheurs dans MySQL. Pour plus de contenu connexe, veuillez faire attention. vers PHP Chinese Net (www.php.cn) !