mysql 触发器 临时表_Mysql触发器

本文介绍了MySQL中如何创建触发器,强调触发器只能应用于永久表而非临时表。通过示例展示了创建一个名为`student`的表,并定义了一个`ins_stu`触发器,该触发器在插入新记录后将数据复制到`student_back`表中。同时,提到了触发器的触发时机,包括`before insert`和`after insert`等,并提醒在设计触发器时要注意可能的更新操作导致的触发顺序问题。最后,给出了删除触发器和查看触发器的SQL语句。
摘要由CSDN通过智能技术生成

Mysql触发器

1.创建触发器

注意:触发器只能创建在永久表上,不能对临时表创建触发器,语法如下:

CREATE TRIGGER trigger_name trigger_time trigger_event

ON table_name FOR EACH ROW trigger_stmt

trigger_time:触发器触发的时间,可以使before或者after,before是指的在检查约束前触发,而after是检查约 束后触发.

trigger_event:触发器触发的事件,可以是insert,update或者delete.

使用别名old和new来引用触发器中发生变化的记录内容,现在触发器还只支持行级触发,不支持语句级触发.

2.创建一个student表,复制一份命名为student_back:

CREATE TABLE `student` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

3.创建触发器:

delimiter $$

CREATE TRIGGER ins_stu AFTER INSERT ON student FOR EACH ROW

BEGIN

INSERT INTO student_back (id, NAME, age)

VALUES

(new.id, new. NAME, new.age) ;

END ;

$$

delimiter ;

插入一条数据:

INSERT INTO student(name,age) VALUES("zhansgan",15);

7cff6b18aa9f5c22b62d284e4e234db7.png

//注意:对于有重复记录需要进行update的insert,触发器触发的顺序是before insert , before update ,after update;对于没有重复记录的insert,就是简单地执行insert操作,触发器触发的顺序是before insert,after insert . 对于那些实际执行update操作的记录,仍然会执行before insert触发器的内容,在设计触发器的时候一定要考虑这种情况,避免错误地触发了触发器.

4.删除触发器

drop trigger trigger_name

5.查看触发器

show triggers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值