MySQL----触发器

一、概述

触发器是在SQL执行了insert/update/delete操作前/后,执行事先定义好的SQL语句,在Mysql中,触发器只能做到行级触发,也就是如果一条语句修改了10行,那么触发器就会触发10次。

二、语法

创建:

复制代码
create trigger 触发器名 after/before insert/update/delete on 表名 for each row
    begin
    -- SQL逻辑
    end;

展示当前所有的触发器:

复制代码
show triggers ;

删除:

复制代码
drop trigger 触发器名字;

在定义触发器中的SQL逻辑时,old表示操作前的数据,new表示操作之后的数据。

例如:

创建一个日志表:

复制代码
create table user_log(
    id int primary key auto_increment,
    opr varchar(10),
    user_name varchar(15),
    opr_time time
);

定义触发器:

复制代码
create trigger user_insert_trigger after insert on user_info for each row
    begin
        insert into user_log values (null,'insert',new.user_name,now());
    end;

执行语句:

复制代码
insert into user_info (id, user_name, password) values (null,'wangwu',123456);

user_log表中自动增加数据:

相关推荐
ptc学习者5 小时前
OGG 安装注意事项
java·开发语言·数据库
鸽鸽程序猿5 小时前
【MySQL】索引
数据库·mysql
zym大哥大5 小时前
Redis-Zest
数据库·redis·缓存
zl9798996 小时前
Redis-stream、bitfield类型
数据库·redis·缓存
数据库那些事儿6 小时前
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
数据库·后端
IvorySQL6 小时前
PostgreSQL 18 异步 I/O(AIO)调优指南
数据库·postgresql
kakacc:6 小时前
记录一次巧妙的SQL:一对多关联导致的 sum () 、count()等group函数重复计算问题
数据库·sql
心随雨下7 小时前
Redis中Geospatial 实际应用指南
数据库·redis·分布式·缓存
黑夜管理员7 小时前
Sql Server安装报错“服务没有及时响应启动或控制请求”
数据库·sql server