mysql命令列和navicat工具插入、刪除觸發器寫法
親測新增資料庫中,新增a表中記錄,b表中相關資料跟隨變化。
提示:demiliter更換mysql結束符。由 ;變成$$(直接delimiter $$(直接回車))。
插入觸發器寫法:
mysql> create trigger tr2 -> after insert on o -> for each row -> begin -> update g set num=num-new.much where gid=new.gid; -> end$$
資料庫結構(如下圖)
a\b表分別為g\o表資料
以下為執行mysql命令列測試資料(可借鑑)
mysql> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| source |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use source
Database changed
mysql> show tables
-> ;
+------------------+
| Tables_in_source |
+------------------+
| db_score |
| db_user |
| g |
| o |
+------------------+
4 rows in set (0.00 sec)
mysql> select * from g;
+-----+--------+------+
| gid | name | num |
+-----+--------+------+
| 1 | 闉嬪瓙 | 25 |
| 2 | 澶栧 | 30 |
| 3 | 鎵嬪 | 40 |
| 4 | 瑁ゅ瓙 | 19 |
+-----+--------+------+
4 rows in set (0.00 sec)
mysql> select * from o;
+-----+------+------+
| oid | gid | much |
+-----+------+------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 4 | 2 |
| 6 | 4 | 1 |
+-----+------+------+
4 rows in set (0.00 sec)
mysql> delimiter $$
mysql> select * from o;
-> $$
+-----+------+------+
| oid | gid | much |
+-----+------+------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 4 | 2 |
| 6 | 4 | 1 |
+-----+------+------+
4 rows in set (0.00 sec)
mysql> create trigger tr2
-> after insert on o
-> for each row
-> begin
-> update g set num=num-new.much where gid=new.gid;
-> end$$
Query OK, 0 rows affected (0.11 sec)
mysql> insert o values(7,1,2)$$
Query OK, 1 row affected (0.10 sec)
mysql> select * from g
-> $$
+-----+--------+------+
| gid | name | num |
+-----+--------+------+
| 1 | 闉嬪瓙 | 23 |
| 2 | 澶栧 | 30 |
| 3 | 鎵嬪 | 40 |
| 4 | 瑁ゅ瓙 | 19 |
+-----+--------+------+
4 rows in set (0.00 sec)
mysql>
以下為navicat觸發器呈現(可仿著寫)
刪除觸發器寫法(簡寫)
mysql> create trigger tr3
-> after delete on o
-> for each row
-> begin
-> update g set num=num-old.much where gid=old.gid;
-> end$$
navicat刪除觸發器寫法