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;
相关推荐
熊哈哈O_o2 分钟前
基于代价模型的复杂查询连接条件下推技术实践——以金仓数据库为例
数据库
Elastic 中国社区官方博客27 分钟前
Elasticsearch Serverless 的无状态架构
大数据·数据库·elasticsearch·搜索引擎·云原生·架构·serverless
happymaker062633 分钟前
JDBC(MySQL)——DAY02
android·数据库·mysql
十月南城39 分钟前
实时数据平台的价值链——数据采集、加工、存储、查询与消费的协同效应与ROI评估
数据库·数据仓库·hive·hadoop·spark
有梦想的小何44 分钟前
从结算需求出发:基于库存日快照与分区的结算报表的Java实践
java·数据库·mysql
Yungoal1 小时前
SQL基础0
数据库·sql
韩立学长1 小时前
基于Springboot的商品库存管理系统369jr3t9(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
java·数据库·spring boot·后端
长安11081 小时前
mysql(C++)----常用的sql命令
java·sql·mysql
scofield_gyb1 小时前
MySQL 批量插入详解:快速提升大数据导入效率的实战方法
大数据·数据库·mysql
不过普通话一乙不改名1 小时前
七:EXPLAIN 深度解析与 SQL 优化实战指南
数据库·sql