Oracle使用触发器和mysql中使用触发器的案例比较

黄舟
发布: 2017-01-18 11:08:39
原创
1745人浏览过

Mysql关系型数据库管理系统

mysql是一个开放源码的小型关联式数据库管理系统,开发者为瑞典mysql ab公司。mysql被广泛地应用在internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库。

这篇文章主要介绍了Oracle使用触发器和mysql中使用触发器的案例比较,本文通过示例讲解,给大家介绍的非常详细,需要的朋友参考下

一、触发器

  1.触发器在数据库里以独立的对象存储,

  2.触发器不需要调用,它由一个事件来触发运行

  3.触发器不能接收参数

  --触发器的应用

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

  --触发器的效率很高

Calliper 文档对比神器
Calliper 文档对比神器

文档内容对比神器

Calliper 文档对比神器 28
查看详情 Calliper 文档对比神器

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

二、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;这个操作由触发器完成。
登录后复制

以上就是Oracle使用触发器和mysql中使用触发器的案例比较的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号