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;
相关推荐
OceanRoy7 小时前
数据库表的设计
数据库·内连接·外连接·er图·表的约束·三大范式·多表连接
Pniubi8 小时前
怎么排查慢SQL,怎么解决?
java·数据库·sql
Decay__12 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
茶栀(*´I`*)13 小时前
SQL 性能分析:从慢查询日志到执行计划的完整定位方法
数据库·sql
艺杯羹13 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
code2cat14 小时前
【随笔】MCP工具重试:任务已经创建,响应丢了怎么办
数据库·mcp
wuyk55516 小时前
Spider-第10讲-SQLite持久化与去重
数据库·爬虫·sqlite
乌暮17 小时前
Spring AOP 与 Spring 事务:用大白话彻底理解原理与实践
java·数据库·spring boot·后端·sql·学习·spring
小此方18 小时前
Re:Mysql数据库基础篇(十二):什么是事务、事务解决了什么问题、事务的四大属性、事务的操作方式
数据库·mysql
csdn_aspnet18 小时前
macOS 10 、Docker 玩轉 MySQL
运维·mysql·macos·docker·容器·mac