MySQL 触发器简单实例

语法

CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.

{ BEFORE | AFTER } --触发器有执行的时间设置:可以设置为事件发生前或后。

{ INSERT | UPDATE | DELETE } --同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。

ON <表名称> --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。

FOR EACH ROW --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。

<触发器SQL语句> --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。

--你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER),如果你已经是Root用户,那么就足够了。这跟SQL的标准有所不同。

实例

example1:

创建表tab1

DROP TABLE IF EXISTS tab1;CREATE TABLE tab1(  tab1_id varchar(11));
DROP TABLE IF EXISTS tab2;CREATE TABLE tab2(  tab2_id varchar(11));

作用:增加tab1表记录后自动将记录增加到tab2表中

DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;CREATE TRIGGER t_afterinsert_on_tab1 AFTER INSERT ON tab1FOR EACH ROWBEGIN   insert into tab2(tab2_id) values(new.tab1_id);END;
INSERT INTO tab1(tab1_id) values('0001');
SELECT * FROM tab1;SELECT * FROM tab2;

创建触发器:t_afterdelete_on_tab1

作用:删除tab1表记录后自动将tab2表中对应的记录删去

DROP TRIGGER IF EXISTS t_afterdelete_on_tab1;CREATE TRIGGER t_afterdelete_on_tab1AFTER DELETE ON tab1FOR EACH ROWBEGIN   delete from tab2 where tab2_id=old.tab1_id;END;
DELETE FROM tab1 WHERE tab1_id='0001';
SELECT * FROM tab1;SELECT * FROM tab2;

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Android(安卓)- Manifest 文件 详解
  3. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  4. Selector、shape详解(一)
  5. android2.2资源文件详解4--menu文件夹下的菜单定义
  6. Android发送短信方法实例详解
  7. Android(安卓)读取资源文件实例详解
  8. 详解Android中的屏幕方向
  9. Android学习笔记(10)————Android的Listview详解1(ArrayAdapte

随机推荐

  1. 如何将添加到ajax html编辑器的文本保存
  2. 在Chtmlview中,浏览多frame的框架的网页,有
  3. 如何在应用程序中嵌入图像并在HTML控件中
  4. 如何控制html代码中DL标签的颜色?
  5. html提示框插件
  6. IE旧版本如何让HTML4转换并且支持HTML5的
  7. PHP选择具有特定宽度的图像并构建网格
  8. 【转载】HTML5 中的一些新特性
  9. 使用img src加载图像会在Mozilla / Chrom
  10. 工作中遇到的几个CSS样式表的问题