mysql -sql触发器

1、创建触发器。

//创建一个触发器在给section关系插入后触发
create trigger timeslot_check1 after insert on section
    referencing new row as nrow
    //对每个插入的行都执行
    for each row
    //when指定一个条件,仅对于满足条件的元组才会执行触发器剩余的部分
    when (nrow.time_slot_id not in (
        select time_slot_id
        from time_slot))
    begin
        rollback
    end;

referencing new row as创建一个变量称为过渡变量用于存储插入、更新后的新元组,相应的,referencing old row as创建一个过渡变量用于存储已经更新或删除的行的旧值。

触发器也可以在事件之前激发,只要把after改为before。触发器只能相应insert, delete和update三种语句。

单个执行语句触发器

create table people_logs(
id int,
time datetime,
log_text text
)


create trigger trigger_insert after insert on people for each row
insert into people_logs values(null,NOW(),concat(new.user_id));

insert into people(user_id,visit_time) values
(1007,'2023-10-01 08:01:23');

多个执行语句触发器

 

delimiter //
#多个执行语句触发器
create trigger trigger_update after update
on people for each row
begin
insert into people_logs values(null,NOW(),concat(old.visit_time));
insert into people_logs values(null,NOW(),concat(new.visit_time));
end;//

2.查看触发器;

show triggers; show triggers/G;

select * from information_schema.triggers\G;

select * from information_schema.triggers where=triggers_name="";

3.触发器删除;

drop trigger " ";

 4.无效触发器

alter trigger “” disable;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值