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;
相关推荐
小扳5 分钟前
Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
运维·spring boot·后端·mysql·spring cloud·docker·容器
日里安35 分钟前
8. 基于 Redis 实现限流
数据库·redis·缓存
EasyCVR1 小时前
ISUP协议视频平台EasyCVR视频设备轨迹回放平台智慧农业视频远程监控管理方案
服务器·网络·数据库·音视频
Elastic 中国社区官方博客1 小时前
使用真实 Elasticsearch 进行更快的集成测试
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·集成测试
明月与玄武2 小时前
关于性能测试:数据库的 SQL 性能优化实战
数据库·sql·性能优化
PGCCC3 小时前
【PGCCC】Postgresql 存储设计
数据库·postgresql
PcVue China5 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
魔道不误砍柴功7 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
锐策7 小时前
〔 MySQL 〕数据库基础
数据库·mysql
远歌已逝8 小时前
管理Oracle实例(二)
数据库·oracle