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表中自动增加数据:

相关推荐
Elastic 中国社区官方博客9 分钟前
在 Elasticsearch 中使用 Mistral Chat completions 进行上下文工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
编程爱好者熊浪2 小时前
两次连接池泄露的BUG
java·数据库
南宫乘风3 小时前
基于 Flask + APScheduler + MySQL 的自动报表系统设计
python·mysql·flask
TDengine (老段)3 小时前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
qq7422349844 小时前
Python操作数据库之pyodbc
开发语言·数据库·python
姚远Oracle ACE4 小时前
Oracle 如何计算 AWR 报告中的 Sessions 数量
数据库·oracle
Dxy12393102164 小时前
MySQL的SUBSTRING函数详解与应用
数据库·mysql
码力引擎5 小时前
【零基础学MySQL】第十二章:DCL详解
数据库·mysql·1024程序员节
杨云龙UP5 小时前
【MySQL迁移】MySQL数据库迁移实战(利用mysqldump从Windows 5.7迁至Linux 8.0)
linux·运维·数据库·mysql·mssql
l1t5 小时前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb