MYSQL-触发器

触发器概念

触发器是一种与表相关联的一段代码,它会在特定事件(INSERT、UPDATE和DELETE语句)发生时自动执行。触发器可以在数据表中插入或更新数据的时候自动执行存储过程,从而实现约束、默认值或处理业务逻辑的功能。

触发器可以在MySQL中创建和删除,已经创建的触发器可以修改它的定义。每个触发器都有一个触发事件和响应事件,触发事件通常是数据表上的INSERT、UPDATE或DELETE语句,响应事件是在触发事件后MySQL服务器执行的操作。

触发器语法

create trigger 触发器名称
{before|after} {insert|update|delete}-- 触发器类型{发生前|发生后} 触发器事件{新增|修改|删除}
on 表名称
for each row  -- 触发器作用范围
begin
    -- 触发器执行操作
end;
  1. 触发器名称可以自定义 ,并唯一性,见名知意

  2. before / after : 表示触发器的类型,分别表示发生前/发生后执行

  3. insert / update / delete : 表示触发器的事件类型,分别表示插入 / 更新 / 删除操作

  4. on 表名称 : 为触发器所在的表名

  5. for each row : 表示触发器作用的范围,即每一行记录都会触发该触发器

  6. begin 和 end之间是触发器执行的操作,可以是一条或者多条SQL语句

insert        updatedelete
OLD修改之前的值删除之前的值
NEW插入的值修改之后的值

触发器-insert

-- 创建一个触发器,当向表中插入一条记录时,自动向另一个表中插入一条记录
create trigger insert_trigger_1
after insert on table1
    for each row --监控所有行
    begin
        -- 触发器的具体事件
        insert into table2(id,name) values (NEW.id,New.name);
    end;

触发器-update

-- 创建一个触发器,当向表中更新一条记录时,自动更新另一个表中的记录
create trigger update_trigger_1
after update on table1
    for each row --监控所有行
    begin
        update table2 set id = NEW.id, name = NEW.name  where id = OLD.id and name = OLD.name;
    end;

触发器-delete

-- 删除触发器
drop trigger 触发器名称;

查询触发器 

-- 查询所有触发器
SHOW TRIGGERS;
-- 查询某个触发器
SELECT * FROM information_schema.TRIGGERS WHERE TRIGGER_NAME = '触发器名'
-- 按数据库查询所有的触发器
SELECT * FROM information_schema.TRIGGERS(WHERE TRIGGER_SCHEMA = '数据库名')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值