触发器
创建触发器
mysql> select * from hotel;
+----+------------+-------+------+
| id | name | level | city |
+----+------------+-------+------+
| 1 | 钓鱼台 | 五星 | 北京 |
| 2 | 东方明珠 | 四星 | 上海 |
| 3 | 南国风 | 五星 | 广州 |
| 4 | 天府大酒店 | 三星 | 成都 |
+----+------------+-------+------+
4 rows in set (0.006 sec)
mysql>
创建与表 hotel 列结构相同的表 hotel_backup :
delimiter //
create trigger trigger_delete before delete on hotel for each row
begin
insert into hotel_backup values( old.id, old.name, old.level, old.city);
end
//
mysql> delimiter //
mysql> create trigger trigger_delete before delete on hotel for each row
-> begin
-> insert into hotel_backup values( old.id, old.name, old.level, old.city);
-> end
-> //
Query OK, 0 rows affected (0.796 sec)
mysql>
mysql> select * from hotel;
+----+------------+-------+------+
| id | name | level | city |
+----+------------+-------+------+
| 1 | 钓鱼台 | 五星 | 北京 |
| 2 | 东方明珠 | 四星 | 上海 |
| 4 | 天府大酒店 | 三星 | 成都 |
+----+------------+-------+------+
3 rows in set (0.006 sec)
mysql>
mysql> select * from hotel_backup;
+----+--------+-------+------+
| id | name | level | city |
+----+--------+-------+------+
| 3 | 南国风 | 五星 | 广州 |
+----+--------+-------+------+
1 row in set (0.006 sec)
mysql>
显示及删除触发器
show triggers \G
mysql> show triggers \G
*************************** 1. row ***************************
Trigger: trigger_delete
Event: DELETE
Table: hotel
Statement: begin
insert into hotel_backup values( old.id, old.name, old.level, old.city);
end
Timing: BEFORE
Created: 2026-05-05 22:50:05.45
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
Definer: root@%
character_set_client: gbk
collation_connection: gbk_chinese_ci
Database Collation: utf8mb4_0900_ai_ci
1 row in set (0.013 sec)
mysql>
drop trigger trigger_delete;