阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle使用触发器和MySQL中使用触发器的比较

104次阅读
没有评论

共计 1553 个字符,预计需要花费 4 分钟才能阅读完成。

一、触发器

1. 触发器在数据库里以独立的对象存储,
2. 触发器不需要调用,它由一个事件来触发运行
3. 触发器不能接收参数

– 触发器的应用
举个例子:校内网、开心网、facebook, 当你发一个日志,自动通知好友,其实就是在增加日志的时候做一个出发,再向表中写入条目。

– 触发器的效率很高
举例:论坛的发帖,每插入一个帖子都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,这时使用触发器效率会很高。

二、Oracle 使用 PL/SQL 编写触发器

1.–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.– 练习

– 问题 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

 

三、在 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; 这个操作由触发器完成。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/138521.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1553字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中