mysql 學習記錄 觸發器

2021-10-03 22:35:53 字數 2323 閱讀 7843

第二十五章 使用觸發器

觸發器是musql響應以下任意語句自動執行的一條mysql語句(或位於begin和end語句之間的一組語句):delete 、insert、update。

觸發條件:

建立觸發器

create

trigger newproduct after

insert

on products

for each row

select

'product added'

into

@new_pro

;#mysql 5.0以上版本在trigger中不能返回結果集,定義了變數 @new_pro;

insert

into products(prod_id,vend_id,prod_name,prod_price)

values

('anvnew'

,'1005'

,'3 ton anvil'

,'6.09');

# 插入一行

select

@new_pro

;# 顯示product added訊息

只有表才支援觸發器,檢視和臨時表不支援

每個表最多支援6個觸發器(每條insert、update、delete的之前和之後)

單一觸發器不能與多個事件或多個表關聯,所以如果需要乙個隊inser和update操作執行的觸發器,則應該定義兩個觸發器。

刪除觸發器

drop

trigger newproduct;

insert觸發器

create

trigger neworder after

insert

on orders for each row

select new.order_num into

@order_num

;insert

into orders(order_date,cust_id)

values

(now()

,10001);

select

@order_num

;

before通常用於資料驗證和淨化(目的是保證插入表中的資料確實是需要的資料)。(適用於insert和update)

delete觸發器

delimiter

//create

trigger deleteorder before delete

on orders for each row

begin

insert

into archive_orders(order_num,order_date,cust_id)

values

(old.order_num,old.order_date,old.cust_id)

;# 引用乙個名為old的虛擬表,訪問被刪除的行

end//

delimiter

;

使用before delete觸發器的優點相對於after來說,如果由於某種原因,訂單不能存檔,delete本身將被放棄。

使用begin end語句可以使觸發器容納多條語句

update觸發器

;#更新1001**商的州為china

MYSQL觸發器簡單記錄

介紹 觸發器是與表有關的資料庫物件,指在insert update delete之前或之後,觸發並執行觸發器中定義的sql語句集合.觸發器的這種特性可以協助應用在資料庫端確保資料的完整性,日誌記錄,資料校驗等操作.觸發器型別 new 和 old 的使用 insert 型觸發器 new 表示將要或者已...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

Mysql學習 觸發器

觸發器是一類特殊的事務,可以監視某種資料操作 insert delete update 並觸發相應操作 insert delete update 使用場景 1 當向一張表中新增或刪除記錄時,需要在相關表中進行同步操作 2 當表上某列資料的值與其他表中的資料有聯絡時。3 當需要對某張表進行跟蹤時 二 ...