本文实例讲述了MySQL 触发器定义与用法。分享给大家供大家参考,具体如下:

语法

CREATE TRIGGER 触发器名称 --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.
{ BEFORE | AFTER } --触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE } --同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。
ON 表名称 --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句> --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。

实例准备工作

-- 创建表tab1DROP TABLE IF EXISTS tab1;CREATE TABLE tab1(  tab1_id varchar(11));-- 创建表tab2DROP TABLE IF EXISTS tab2;CREATE TABLE tab2(  tab2_id varchar(11));
-- 创建触发器:t_afterinsert_on_tab1-- 作用:增加tab1表记录后自动将记录增加到tab2表中DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;CREATE TRIGGER t_afterinsert_on_tab1AFTER 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;
-- 创建触发器:t_afterupdate_on_tab1-- 作用:修改tab1表记录后自动将tab2表中对应的记录更新DROP TRIGGER IF EXISTS t_afterupdate_on_tab1;CREATE TRIGGER t_afterupdate_on_tab1AFTER UPDATE ON tab1FOR EACH ROWBEGIN   update tab2 set tab2_id=new.tab1_id where tab2_id=old.tab1_id;END;-- 测试一下update tab1 set tab1_id='0002' WHERE tab1_id='0001';-- 看看结果SELECT * FROM tab1;SELECT * FROM tab2;

希望本文所述对大家MySQL数据库计有所帮助。

更多相关文章

  1. 《Android和PHP最佳实践》官方站
  2. android用户界面之按钮(Button)教程实例汇
  3. TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
  4. Android(安卓)UI开发第十七篇——Android(安卓)Fragment实例(Lis
  5. Android——Activity四种启动模式
  6. Android布局(序章)
  7. Android发送短信方法实例详解
  8. Android(安卓)读取资源文件实例详解
  9. android 蓝牙通讯

随机推荐

  1. Android对返回键进行处理的方式
  2. 在Android的评论屏幕上实施网络呼叫的最
  3. 如何将值发送到Ionic中具有条件的其他页
  4. 将常量文本放在EditText中,这应该是不可编
  5. 使用mediaplayer + surfaceview来播放视
  6. android try catch并不影响性能
  7. Lance老师UI系列教程第三课->QQ登录注册
  8. getCacheDir()和getFilesDir()方法区别
  9. 关于AndroidStudio中提示cannot resolve
  10. eclipse转用android studio——常用快捷