新聞中心
以下的文章主要介紹的是MySQL 觸發(fā)器的簡(jiǎn)單實(shí)例,本文主要是以相關(guān)語(yǔ)法來(lái)引出MySQL 觸發(fā)器的實(shí)際應(yīng)用,以下就是文章的具體內(nèi)容描述,希望會(huì)給你帶來(lái)一些幫助在學(xué)習(xí)MySQL 觸發(fā)器方面。

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比克山網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式克山網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋克山地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴(lài)。
語(yǔ)法
CREATE TRIGGER <觸發(fā)器名稱(chēng)> 觸發(fā)器必須有名字,最多64個(gè)字符,可能后面會(huì)附有分隔符.它和MySQL中其他對(duì)象的命名方式基本相象.
{ BEFORE | AFTER } 觸發(fā)器有執(zhí)行的時(shí)間設(shè)置:可以設(shè)置為事件發(fā)生前或后。
{ INSERT | UPDATE | DELETE } 同樣也能設(shè)定觸發(fā)的事件:它們可以在執(zhí)行insert、update或delete的過(guò)程中觸發(fā)。
ON <表名稱(chēng)> 觸發(fā)器是屬于某一個(gè)表的:當(dāng)在這個(gè)表上執(zhí)行插入、 更新或刪除操作的時(shí)候就導(dǎo)致觸發(fā)器的激活. 我們不能給同一張表的同一個(gè)事件安排兩個(gè)觸發(fā)器。
FOR EACH ROW 觸發(fā)器的執(zhí)行間隔:FOR EACH ROW子句通知MySQL 觸發(fā)器 每隔一行執(zhí)行一次動(dòng)作,而不是對(duì)整個(gè)表執(zhí)行一次。
<觸發(fā)器SQL語(yǔ)句> 觸發(fā)器包含所要觸發(fā)的SQL語(yǔ)句:這里的語(yǔ)句可以是任何合法的語(yǔ)句, 包括復(fù)合語(yǔ)句,但是這里的語(yǔ)句受的限制和函數(shù)的一樣。
你必須擁有相當(dāng)大的權(quán)限才能創(chuàng)建MySQL 觸發(fā)器(CREATE TRIGGER),如果你已經(jīng)是Root用戶,那么就足夠了。這跟SQL的標(biāo)準(zhǔn)有所不同。
實(shí)例
Example1:
創(chuàng)建表tab1
- DROP TABLE IF EXISTS tab1;
- CREATE TABLE tab1(
- tab1_id varchar(11)
- );
創(chuàng)建表tab2
- DROP TABLE IF EXISTS tab2;
- CREATE TABLE tab2(
- tab2_id varchar(11)
- );
創(chuàng)建MySQL 觸發(fā)器:t_afterinsert_on_tab1
作用:增加tab1表記錄后自動(dòng)將記錄增加到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
測(cè)試一下
- INSERT INTO tab1(tab1_id) values('0001');
看看結(jié)果
- SELECT * FROM tab1;
- SELECT * FROM tab2;
Example2:
創(chuàng)建觸發(fā)器:t_afterdelete_on_tab1
作用:刪除tab1表記錄后自動(dòng)將tab2表中對(duì)應(yīng)的記錄刪去
- 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;
測(cè)試一下
- DELETE FROM tab1 WHERE tab1_id='0001';
看看結(jié)果
- SELECT * FROM tab1;
- SELECT * FROM tab2;
以上的相關(guān)內(nèi)容就是對(duì)
MySQL 觸發(fā)器簡(jiǎn)單實(shí)例的介紹,望你能有所收獲。
新聞名稱(chēng):MySQL觸發(fā)器的實(shí)例演示
網(wǎng)站URL:http://www.5511xx.com/article/ccdehgg.html


咨詢
建站咨詢
