MySQL 建立觸發器
--建立測試表
MariaDB [test]> create table account (acct_num int, amount decimal(10,2));
Query OK, 0 rows affected (0.16 sec)
--建立觸發器
MariaDB [test]> CREATE TRIGGER ins_sum BEFORE INSERT ON account
-> FOR EACH ROW SET @sum = @sum + NEW.amount;
Query OK, 0 rows affected (0.08 sec)
MariaDB [test]> select @sum;
+------+
| @sum |
+------+
| NULL |
+------+
1 row in set (0.00 sec)
MariaDB [test]> SET @sum = 0;
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> INSERT INTO account VALUES(137,14.98),(141,1937.50),(97,-100.00);
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0
MariaDB [test]> select @sum;
+---------+
| @sum |
+---------+
| 1852.48 |
+---------+
1 row in set (0.00 sec)
MariaDB [test]> select sum(amount) from account;
+-------------+
| sum(amount) |
+-------------+
| 1852.48 |
+-------------+
1 row in set (0.00 sec)
--檢視觸發器
MariaDB [test]> show triggers\G
*************************** 1. row ***************************
Trigger: ins_sum
Event: INSERT
Table: account
Statement: SET @sum = @sum + NEW.amount
Timing: BEFORE
Created: NULL
sql_mode: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
1 row in set (0.00 sec)
MariaDB [test]> select * from information_schema.triggers where trigger_name='ins_sum' \G
*************************** 1. row ***************************
TRIGGER_CATALOG: def
TRIGGER_SCHEMA: test
TRIGGER_NAME: ins_sum
EVENT_MANIPULATION: INSERT
EVENT_OBJECT_CATALOG: def
EVENT_OBJECT_SCHEMA: test
EVENT_OBJECT_TABLE: account
ACTION_ORDER: 0
ACTION_CONDITION: NULL
ACTION_STATEMENT: SET @sum = @sum + NEW.amount
ACTION_ORIENTATION: ROW
ACTION_TIMING: BEFORE
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
ACTION_REFERENCE_OLD_ROW: OLD
ACTION_REFERENCE_NEW_ROW: NEW
CREATED: NULL
SQL_MODE: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DEFINER: root@localhost
CHARACTER_SET_CLIENT: utf8
COLLATION_CONNECTION: utf8_general_ci
DATABASE_COLLATION: utf8_general_ci
1 row in set (0.00 sec)
MariaDB [test]> create table account (acct_num int, amount decimal(10,2));
Query OK, 0 rows affected (0.16 sec)
--建立觸發器
MariaDB [test]> CREATE TRIGGER ins_sum BEFORE INSERT ON account
-> FOR EACH ROW SET @sum = @sum + NEW.amount;
Query OK, 0 rows affected (0.08 sec)
MariaDB [test]> select @sum;
+------+
| @sum |
+------+
| NULL |
+------+
1 row in set (0.00 sec)
MariaDB [test]> SET @sum = 0;
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> INSERT INTO account VALUES(137,14.98),(141,1937.50),(97,-100.00);
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0
MariaDB [test]> select @sum;
+---------+
| @sum |
+---------+
| 1852.48 |
+---------+
1 row in set (0.00 sec)
MariaDB [test]> select sum(amount) from account;
+-------------+
| sum(amount) |
+-------------+
| 1852.48 |
+-------------+
1 row in set (0.00 sec)
--檢視觸發器
MariaDB [test]> show triggers\G
*************************** 1. row ***************************
Trigger: ins_sum
Event: INSERT
Table: account
Statement: SET @sum = @sum + NEW.amount
Timing: BEFORE
Created: NULL
sql_mode: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
1 row in set (0.00 sec)
MariaDB [test]> select * from information_schema.triggers where trigger_name='ins_sum' \G
*************************** 1. row ***************************
TRIGGER_CATALOG: def
TRIGGER_SCHEMA: test
TRIGGER_NAME: ins_sum
EVENT_MANIPULATION: INSERT
EVENT_OBJECT_CATALOG: def
EVENT_OBJECT_SCHEMA: test
EVENT_OBJECT_TABLE: account
ACTION_ORDER: 0
ACTION_CONDITION: NULL
ACTION_STATEMENT: SET @sum = @sum + NEW.amount
ACTION_ORIENTATION: ROW
ACTION_TIMING: BEFORE
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
ACTION_REFERENCE_OLD_ROW: OLD
ACTION_REFERENCE_NEW_ROW: NEW
CREATED: NULL
SQL_MODE: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
DEFINER: root@localhost
CHARACTER_SET_CLIENT: utf8
COLLATION_CONNECTION: utf8_general_ci
DATABASE_COLLATION: utf8_general_ci
1 row in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2121396/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 建立MySQL觸發器MySql觸發器
- MySQL建立觸發器時報錯Error Code: 1064MySql觸發器Error
- mysql觸發器MySql觸發器
- MySQL使用觸發器MySql觸發器
- MySql-觸發器MySql觸發器
- MySQL觸發器介紹MySql觸發器
- SqlServer觸發器的建立與使用SQLServer觸發器
- MySQL入門-- TRIGGER(觸發器)MySql觸發器
- MySQL觸發器的使用規則MySql觸發器
- [MySQL光速入門]026 觸發器 trigger!!!MySql觸發器
- 25. 使用MySQL之使用觸發器MySql觸發器
- MySQL全面瓦解17:觸發器相關MySql觸發器
- 使用 Amazon S3 觸發器建立縮圖S3觸發器
- MySQL觸發器使用MySql觸發器
- MySQL與SQL的觸發器的不同寫法MySql觸發器
- MySQL / MariaDB 觸發器的建立、使用、檢視、刪除教程及應用場景實戰案例MySql觸發器
- mysql使用者建立觸發器許可權不足跟引數log_bin_trust_function_creatorsMySql觸發器RustFunction
- 【MySQL】MySQL(三)儲存過程和函式、觸發器、事務MySql儲存過程函式觸發器
- D觸發器觸發器
- MySQL觸發器的詳細教學與實戰分析MySql觸發器
- mysql觸發器案例分析以及before和after的區別MySql觸發器
- MySQL觸發器的使用和優缺點介紹ZGMHMySql觸發器
- 2020重新出發,MySql基礎,MySql檢視&索引&儲存過程&觸發器MySql索引儲存過程觸發器
- SqlServer-觸發器SQLServer觸發器
- logon觸發器for dbaGo觸發器
- 語句觸發器觸發器
- sqlserver 列觸發器SQLServer觸發器
- 除錯觸發器除錯觸發器
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- 觸發器 REFERENCING OLD AS OLD觸發器
- 行為和觸發器觸發器
- sql-server觸發器SQLServer觸發器
- js 建立和觸發事件 和 自定義事件JS事件
- Oracle開發基礎-觸發器Oracle觸發器
- 【MySQL】xtrabackup 2.4.12備份觸發的bugMySql
- 《MySQL 基礎篇》九:儲存過程、流程控制和觸發器MySql儲存過程觸發器
- 瞭解使用mysql 的檢視、儲存過程、觸發器、函式....MySql儲存過程觸發器函式
- SQL Server:觸發器詳解SQLServer觸發器
- mvvm模式 事件觸發器[wpf]MVVM模式事件觸發器