第二十五章 使用觸發器
觸發器是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 當需要對某張表進行跟蹤時 二 ...