MySQL 學習教程 十六 整理 觸發器

2021-08-16 23:16:52 字數 2755 閱讀 4888

參考:

觸發物件:表中的每一條記錄(行),即整張表

-- 建立觸發器基本語法

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...