在product表上创建三个触发器。每次激活触发器后,都会更新operate表。product表和
表的内容如下
Product表内容
字段名 字段描述 数据类型 主键 外键 非空 唯一 自增
Id 产品编号 Int(10) 是 否 是 是 否
Name 产品功能 Varchar(20) 否 否 是 否 否
Function 主要功能 Varchar(50) 否 否 否 否 否
Company 生产厂家 Varchar(20) 否 否 是 否 否
Address 家庭住址 Varchar(20) 否 否 否 否 否
Operate表的内容
字段名 字段描述 数据类型 主键 外键 非空 唯一 自增
Op_id 编号 Int(10) 是 否 是 是 是
Op_type 操作方式 Varchar(20) 否 否 是 否 否
Op_time 操作时间 Varchar(20) 否 否 是 否 否
1、在product表上分别创建BEFORE INSERT、AFTER UPDATE和AFTER DELETE 3个触发器,
触发器名称分别为product_bf_insert、product_af_update和product_af_del。执行语句部分是向operate表插入操作方法和操作时间。
1.1 BEFORE INSERT 触发器
| CREATE TRIGGER product_bf_insert |
| BEFORE INSERT ON product |
| FOR EACH ROW |
| BEGIN |
| INSERT INTO operate(Op_type, Op_time) VALUES ('BEFORE INSERT', NOW()); |
| END; |
1.2 AFTER UPDATE 触发器
| CREATE TRIGGER product_af_update |
| AFTER UPDATE ON product |
| FOR EACH ROW |
| BEGIN |
| INSERT INTO operate(Op_type, Op_time) VALUES ('AFTER UPDATE', NOW()); |
| END; |
1.3 AFTER DELETE 触发器
| CREATE TRIGGER product_af_del |
| AFTER DELETE ON product |
| FOR EACH ROW |
| BEGIN |
| INSERT INTO operate(Op_type, Op_time) VALUES ('AFTER DELETE', NOW()); |
| END; |
2. 对 product 表执行 INSERT、UPDATE 和 DELETE 操作
2.1 INSERT 操作
| INSERT INTO product(Id, Name, Function, Company, Address) |
| VALUES (1, 'Product A', 'Function A', 'Company A', 'Address A'); |
2.2 UPDATE 操作
| UPDATE product |
| SET Name = 'Updated Product A' |
| WHERE Id = 1; |
2.3 DELETE 操作
| DELETE FROM product |
| WHERE Id = 1; |
3. 删除 product_bf_insert 和 product_af_update 这两个触发器
| DROP TRIGGER product_bf_insert; |
| DROP TRIGGER product_af_update; |