#### 創建觸發器
語法 :
~~~
Create trigger 觸發器名字 觸發時機 觸發事件 on 表 for each row
Begin
End
~~~
觸發對象:on 表 for each row,觸發器綁定實質是表中的所有行,因此當每一行發生指定的改變的時候,就會觸發觸發器。
#### 觸發時機
觸發時機:每張表中對應的行都會有不同的狀態,當SQL指令發生的時候,都會令行中數據發生改變,每一行總會有兩種狀態:數據操作前和操作后
Before:在表中數據發生改變前的狀態
After:在表中數據已經發生改變后的狀態
#### 觸發事件
觸發事件:mysql中觸發器針對的目標是數據發生改變,對應的操作只有寫操作(增刪改)
Insert:插入操作
Update:更新操作
Delete:刪除操作
#### 注意事項
一張表中,每一個觸發時機綁定的觸發事件對應的觸發器類型只能有一個:一張表中只能有一個對應after insert觸發器
因此,一張表中最多的觸發器只能有6個:before insert,before update,before delete,after insert,after update,after delete
需求:有兩張表,一張是商品表,一張是訂單表(保留商品ID),每次訂單生成,商品表中對應的庫存就應該發生變化。
- 數據庫介紹
- 數據庫基本概念
- SQL介紹
- MySQL服務端架構
- 庫操作
- 表操作
- 字段類型
- 整數類型
- 小數類型
- 字符串類型
- 日期/時間類型
- json類型
- 字段屬性
- Null
- 默認值
- 列描述
- 主鍵
- 自動增長
- 唯一鍵
- 數據庫基礎操作
- 增
- 刪
- 改
- 查
- 運算符
- 算術運算符
- 比較運算符
- 邏輯運算符
- in運算符
- is運算符
- like運算符
- 高級查詢
- 聯合查詢
- 連接查詢
- 交叉連接
- 內連接
- 外連接
- Using關鍵字
- 子查詢
- 標量子查詢
- 列子查詢
- 行子查詢
- 表子查詢
- exists子查詢
- 子查詢特定關鍵字
- 用戶權限管理
- 用戶管理
- 權限管理
- 外鍵
- 外鍵操作
- 外鍵基本要求
- 約束
- 視圖
- 事務安全
- 自動事務
- 手動事務
- 事務特點
- 變量
- 系統變量
- 會話變量
- 局部變量
- 流程結構
- if分支
- while循環
- 函數
- 內置函數
- 字符串函數
- 時間函數
- 數學函數
- 其他函數
- 存儲過程
- 與函數的區別
- 存儲過程操作
- 存儲過程的形參類型
- 觸發器
- 觸發器概念
- 觸發器操作