Oracle使用触发器和mysql中使用触发器的案例比较
一、触发器
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.cnblogs.com/redirectZmh/archive/2016/12/19/6196487.html
(资源库 www.zyku.net)
栏 目:Oracle
下一篇:通过sql准确查出一天数据的方法
本文标题:Oracle使用触发器和mysql中使用触发器的案例比较
本文地址:https://www.zyku.net/oracle/617.html
您可能感兴趣的文章
- 04-24Python备份Mysql脚本
- 03-27MySQL中的7种日志
- 03-20csv导入mysql中文乱码等问题解决方法
- 03-20MySQL 8.0的新特性和解决办法
- 03-19MySQL 8.0创建用户授予权限报错解决方法
- 03-18phpStudy设置允许远程访问MySQL数据库
- 03-17Windows 安装并配置 MySQL 5.6/5.7
- 03-12MySQL获取表最大id的方法
- 02-06Windows下MySQL-5.7.32安装与配置方法
- 11-02mysql命令gruop by报错this is incompatible with sql
- 12-31土豆目标打卡-土豆目标打卡应用软件功
- 12-27懂鸟全球-懂鸟全球应用软件功能介绍
- 01-11记工时计件-记工时计件应用软件功能介
- 09-14CentOS 7中Docker搭建LNMP环境的方法
- 01-12小猪佩奇口语秀-小猪佩奇口语秀应用软
- 01-12全全快速清理大师-全全快速清理大师应
- 01-24华为手机仅允许已有联系人来电设置方
- 03-10荣耀50pro指纹录入教程
- 02-09华为nova8pro智慧助手语音唤醒设置步
- 02-18小米11pro关闭2k分辨率方法
最近更新
阅读排行
猜你喜欢
- 10-13密码重设工具(UTF-8/GBK) For DedeCMS
- 08-09DiYunCMS(帝云CMS)免费开源PHP网站管
- 12-26易智教-易智教应用软件功能介绍
- 03-20帝国CMS首页调用最新会员、活跃会员与
- 01-12中国蓝新闻客户端-中国蓝新闻客户端应
- 03-31红米k40关闭HD教程
- 05-07vivox60pro开启双击亮屏功能教程
- 07-05Linux ls命令
- 04-14魅族18pro开发者模式开启教程
- 07-31帝国CMS列表模板信息列表使用程序代码