MySQL 触发器简略实例ITeye - 千亿集团

MySQL 触发器简略实例ITeye

2019-01-11 05:08:00 | 作者: 从寒 | 标签: 触发器,实例,履行 | 浏览: 2036


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)
);
创立表tab2


DROP 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_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
  insert into tab2(tab2_id) values(new.tab1_id);
END;
测验一下

1
INSERT INTO tab1(tab1_id) values(0001);
看看成果


SELECT * FROM tab1;
SELECT * FROM tab2;
example2:

创立触发器:t_afterdelete_on_tab1

效果:删去tab1表记载后主动将tab2表中对应的记载删去


DROP TRIGGER IF EXISTS t_afterdelete_on_tab1;
CREATE TRIGGER t_afterdelete_on_tab1
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
  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的count函数优化ITeye

    索引,优化,情况
  • 2
  • 3

    DB2锁机制ITeye

    机制,程序,数据
  • 4

    oracle功能优化总结ITeye

    索引,视图,优化
  • 5

    oracle存储进程ITeye

    存储,进程,数据
  • 6

    Oracle中rownum、rowid、rowITeye

    相同,记载,排名
  • 7
  • 8
  • 9

    解析oracle的rownum(转载)ITeye

    查询,记载,运用
  • 10