Maison  >  Article  >  base de données  >  Comparaison des cas utilisant des déclencheurs dans Oracle et des déclencheurs dans MySQL

Comparaison des cas utilisant des déclencheurs dans Oracle et des déclencheurs dans MySQL

黄舟
黄舟original
2017-01-18 11:08:391603parcourir

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) !


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