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;
相关推荐
亚马逊云开发者1 分钟前
将 Go 应用从 x86 平台迁移至 Amazon Graviton:场景剖析与最佳实践
linux·数据库·golang
凉拌青瓜哈17 分钟前
DVWA-LOW级-SQL手工注入漏洞测试(MySQL数据库)+sqlmap自动化注入-小白必看(超详细)
mysql·安全·网络安全
张先shen1 小时前
亿级流量下的缓存架构设计:Redis+Caffeine多级缓存实战
数据库·redis·缓存
二楼后座。1 小时前
Golang操作MySQL json字段优雅写法
mysql·golang·json
~ 小团子2 小时前
每日一SQL 【各赛事的用户注册率】
数据库·sql
llm2009092 小时前
Jmeter的JDBC数据库连接
数据库·jmeter
lilian1292 小时前
linux系统mysql性能优化
linux·运维·mysql
betazhou2 小时前
SQL server之版本的初认知
数据库·oracle·goldengate·sql server·ogg·gdr
superonion06202 小时前
【DB2】load报错SQL3501W、SQL3109N、SQL2036N
数据库
~ 小团子2 小时前
每日一SQL 【每月交易 I】
数据库·sql