在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表插入操作方法和操作时间。
-- 创建BEFORE INSERT触发器product_bf_insert
DELIMITER //
CREATE TRIGGER product_bf_insert
BEFORE INSERT ON Product
FOR EACH ROW
BEGIN
INSERT INTO Operate(Op_type, Op_time)
VALUES ('INSERT', NOW());
END //
DELIMITER ;
-- 创建AFTER UPDATE触发器product_af_update
DELIMITER //
CREATE TRIGGER product_af_update
AFTER UPDATE ON Product
FOR EACH ROW
BEGIN
INSERT INTO Operate(Op_type, Op_time)
VALUES ('UPDATE', NOW());
END //
DELIMITER ;
-- 创建AFTER DELETE触发器product_af_del
DELIMITER //
CREATE TRIGGER product_af_del
AFTER DELETE ON Product
FOR EACH ROW
BEGIN
INSERT INTO Operate(Op_type, Op_time)
VALUES ('DELETE', NOW());
END //
DELIMITER ;
2、对product表分别执行INSERT、UPDATE和DELETE操作
-- 插入数据到Product表
INSERT INTO Product(Id, Name, Function, Company, Address) VALUES (1, '产品1', '功能1', '公司1', '地址1');
-- 更新数据到Product表
UPDATE Product SET Name = '产品2' WHERE Id = 1;
-- 删除数据从Product表
DELETE FROM Product WHERE Id = 1;
3、删除product_bf_insert和product_af_update这两个触发器
-- 删除BEFORE INSERT触发器product_bf_insert
DROP TRIGGER IF EXISTS product_bf_insert;
-- 删除AFTER UPDATE触发器product_af_update
DROP TRIGGER IF EXISTS product_af_update;