參考:
觸發物件:表中的每一條記錄(行),即整張表
。
-- 建立觸發器基本語法
delimiter 自定義符號 -- 臨時修改語句結束符,在後續語句中只有遇到自定義符號才會結束語句
create
trigger + 觸發器名稱 + 觸發器時間 + 事件型別 on 表名 for
each
rowbegin -- 代表觸發器內容開始
-- 觸發器內容主體,每行用分號結尾
end -- 代表觸發器內容結束
自定義符號 -- 用於結束語句
delimiter ;
-- 恢復語句結束符
-- 建立商品表
create
table goods(
id int
primary
key auto_increment,
name varchar(20) not
null,
price decimal(10, 2) default
0, inventory int comment '商品庫存量'
)charset utf8;
-- 插入兩條資料
insert
into goods values(null, 'iphone8', 5088, 1000), (null, 'iphonex', 8088, 1000);
-- 建立訂單表
create
table orders(
id int
primary
key auto_increment,
goods_id int
notnull,
goods_number int
default
1)charset utf8;
-- 建立觸發器
delimiter $$ -- 臨時修改語句結束符
create
trigger after_order after
insert
on orders for
each
rowbegin -- 觸發器內容開始
-- 觸發器內容主體,每行用分號結尾
update goods set inventory = inventory - 1
where id = 1;
end -- 觸發器內容結束
$$ -- 結束語句
delimiter ;
-- 恢復語句結束符
-- 查詢所有觸發器,\g 表示旋轉
show triggers\g;
-- 查詢觸發器建立語句,\g 表示旋轉
show
create
trigger after_order\g;
-- 查詢觸發器,\g 表示旋轉
select * from information_schema.triggers\g;
-- 檢視商品表
select * from goods;
-- 檢視訂單表
select * from orders;
-- 插入訂單表
insert
into orders values(null, 2, 10);
-- 檢視訂單表
select * from orders;
-- 檢視商品表
select * from goods;
-- 刪除觸發器
drop
trigger after_order;
-- 查詢觸發器
show triggers;
action_reference_new_row:new
new
,代表是新記錄,也就是假設操作發生之後記錄的狀態,刪除時沒有new
。
-- 建立新觸發器
delimiter $$ -- 臨時修改語句結束符
create
trigger after_order_new after
insert
on orders for
each
rowbegin -- 觸發器內容開始
-- 觸發器內容主體,每行用分號結尾
update goods set inventory = inventory - new.goods_number where id = new.goods_id;
end -- 觸發器內容結束
$$ -- 結束語句
delimiter ;
-- 恢復語句結束符
-- 檢視新觸發器
show triggers\g;
-- 檢視商品表
select * from goods;
-- 檢視訂單表
select * from orders;
-- 插入訂單表
insert
into orders values(null, 2, 10);
-- 檢視訂單表
select * from orders;
-- 檢視商品表
select * from goods;
mysql教程 觸發器
mysql觸發器 情景說明 1.mysql觸發器 情景說明 情景設定,如圖,當我們點選了購買,將會發生什麼?現有如下兩張表 商品表編號 id 名稱 name price 庫存 stock 1f2戰鬥機10000100 2法拉利80070 3航空母艦500020 4三棲交通工具100050 訂單表編號...
學習ReactiveCocoa教程 (整理的資料)
學習資料 framework overview basic operators memory management reactivecocoa tutorial the definitive introduction art 2 譯文 mvvm tutorial with reactivecocoa...
學習ReactiveCocoa教程 (整理的資料)
學習資料 framework overview basic operators memory management reactivecocoa tutorial the definitive introduction art 2 譯文 mvvm tutorial with reactivecocoa...