MySQL之触发器

1,创建表

复制代码
CREATE TABLE Product (
    Id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20) NOT NULL,
    Function VARCHAR(50),
    Company VARCHAR(20) NOT NULL,
    Address VARCHAR(20)
);

CREATE TABLE Operate (
    Op_id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Op_type VARCHAR(20) NOT NULL,
    Op_time VARCHAR(20) NOT NULL
);

2,创建触发器

复制代码
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 ;

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 ;

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 ;

3,执行操作

INSERT 操作
复制代码
INSERT INTO Product (Name, Function, Company, Address) VALUES ('Product A', 'Feature X', 'Manufacturer Y', 'Location Z');
UPDATE 操作
复制代码
UPDATE Product SET Function = 'New Feature' WHERE Id = 1;
DELETE 操作
复制代码
DELETE FROM Product WHERE Id = 1;

删除触发器

复制代码
DROP TRIGGER IF EXISTS product_bf_insert;
DROP TRIGGER IF EXISTS product_af_update;
相关推荐
CookieCrusher3 小时前
数据泄露危机逼近:五款电脑加密软件为企业筑起安全防线
运维·数据库·windows·安全·文件加密·数据防泄漏·dlp
这周也會开心4 小时前
SQL-窗口函数
数据库·sql
TDengine (老段)6 小时前
TDengine 时间函数 WEEKDAY() 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)6 小时前
从 ETL 到 Agentic AI:工业数据管理变革与 TDengine IDMP 的治理之道
数据库·数据仓库·人工智能·物联网·时序数据库·etl·tdengine
LQ深蹲不写BUG8 小时前
MySql的事务机制
数据库·mysql
逼子格9 小时前
【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
数据库·单片机·嵌入式硬件·51单片机·proteus·定时器·硬件工程师
stein_java10 小时前
Mybatis-7 XML映射器
数据库·sql·mybatis
xhbh66610 小时前
开发效率翻倍:资深DBA都在用的MySQL客户端利器
数据库·mysql·数据库连接工具·mysql 连接工具
LJC_Superman10 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim