觸發(fā)器

基本概念

觸發(fā)器(trigger)是MySQL語(yǔ)句響應(yīng)以下任意語(yǔ)句而自動(dòng)執(zhí)行的一條MySQL語(yǔ)句(或位于begin和and之間的一組語(yǔ)句):

  • delete
  • insert
  • update

其他語(yǔ)句不止觸發(fā)器。
只有表支持觸發(fā)器,視圖和臨時(shí)表都不支持。

創(chuàng)建觸發(fā)器

在創(chuàng)建觸發(fā)器時(shí),需要:

  • 定義觸發(fā)器名;
  • 定義觸發(fā)器關(guān)聯(lián)的表;
  • 定義觸發(fā)器響應(yīng)的活動(dòng);
  • 定義觸發(fā)器何時(shí)執(zhí)行(處理之前或之后);

create trigger trigger_name before/after insert/delete/update on table_name for...'

觸發(fā)器名必須保持在每個(gè)表中唯一,但不要求在一個(gè)數(shù)據(jù)庫(kù)中唯一。
觸發(fā)器按每個(gè)表每個(gè)時(shí)間每次地定義,每個(gè)表每個(gè)事件每次只允許定義一個(gè)觸發(fā)器。因此,每個(gè)表最多支持6個(gè)觸發(fā)器(insert,delete和update的之前和之后)。
如果before觸發(fā)器失敗,那么MySQL不會(huì)執(zhí)行請(qǐng)求的操作。如果before觸發(fā)器或者語(yǔ)句本身失敗,則不執(zhí)行after觸發(fā)器。

刪除觸發(fā)器

drop trigger trigger_name;

使用觸發(fā)器

create trigger neworder after insert on orders
for each row select NEW.order_num into @aaa;

insert into orders(order_date,cust_id) values(Now(),10001);
select @aaa;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 觸發(fā)器 MySQL包含對(duì)觸發(fā)器的支持。觸發(fā)器是一種與表操作有關(guān)的數(shù)據(jù)庫(kù)對(duì)象,當(dāng)觸發(fā)器所在表上出現(xiàn)指定事件時(shí),將調(diào)用...
    FTOLsXD閱讀 1,046評(píng)論 0 1
  • MySQL包含對(duì)觸發(fā)器的支持。觸發(fā)器是一種與表操作有關(guān)的數(shù)據(jù)庫(kù)對(duì)象,當(dāng)觸發(fā)器所在表上出現(xiàn)指定事件時(shí),將調(diào)用該對(duì)象,...
    金星show閱讀 896評(píng)論 0 3
  • 觸發(fā)器概念 什么是觸發(fā)器 觸發(fā)器是一種與表操作有關(guān)的數(shù)據(jù)庫(kù)對(duì)象,當(dāng)觸發(fā)器所在表上發(fā)生指定事件時(shí),將調(diào)用該對(duì)象,即表...
    maxwellyue閱讀 1,289評(píng)論 0 11
  • 周日參加了《喚醒半睡的自己》書(shū)友會(huì)成立儀式暨線(xiàn)下活動(dòng),看到了久未相見(jiàn)的吳文君老師,聆聽(tīng)了她的講話(huà)。吳老師的學(xué)生們分...
    如心1976閱讀 758評(píng)論 1 0
  • ==操作符專(zhuān)門(mén)用來(lái)比較兩個(gè)變量的值是否相等。也就是用于比較變量所對(duì)應(yīng)的內(nèi)存中所存儲(chǔ)的值是否相同。要比較兩個(gè)基本類(lèi)型...
    哈哈海閱讀 295評(píng)論 0 0

友情鏈接更多精彩內(nèi)容