MySQL高级八——触发器的使用

黄舟
Lepaskan: 2016-12-29 16:42:47
asal
1126 orang telah melayarinya

触发器是一种特殊的存储过程,它在插入,删除或者修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。

它具有这样的特征:

监视地点:一般就是表名

监视事件:update/delete/insert

触发时间:after/before

触发事件:update/delete/insert

他不能直接被调用,是由数据库主动执行。

example1:

创建表tab1

DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
    tab1_id varchar(11)
);
Salin selepas log masuk

创建表tab2

DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(
    tab2_id varchar(11)
);
Salin selepas log masuk

创建触发器: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;
Salin selepas log masuk

测试一下

INSERT INTO tab1(tab1_id) values('0001');
Salin selepas log masuk


看看结果
SELECT * FROM tab1;
SELECT * FROM tab2;
Salin selepas log masuk
Salin selepas log masuk

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;
Salin selepas log masuk

测试一下

DELETE FROM tab1 WHERE tab1_id='0001';
Salin selepas log masuk


看看结果
SELECT * FROM tab1;
SELECT * FROM tab2;
Salin selepas log masuk
Salin selepas log masuk

 以上就是MySQL高级八——触发器的使用的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!