mysql触发器的简单使用

mysql触发器

定义:在数据库某个条件成立时候。你触发器里面所定义的语句自动会被执行。触发器不需要人为的调用,也不能调用。

个人理解使用地方:在用户注册信息的时候,有时候需要初始化一些信息,这个时候就可以用触发器去执行一些sql语句,,

减少项目代码里面对于每次都需要判断是否存在用户相关信息的判断。。注册时候使用触发器很高效,减少代码量!

特点:

触发器:语句级触发和行级触发。。

语句级触发:可以在某些语句执行前或执行后被触发,

行级触发器:则是在定义了触发的表中的行数据改变时就会被触发一次。

一个表上最多可以有12个触发器,但同一时间、同一事件、同一类型的触发器只能有一个。如果确实需要,可以先建立过程,然后在触发器中用CALL语句。

简单案例:

说明:users表插入信息的时候,在article和posts表插入两条与之对应的默认信息

CREATE TRIGGER `add_articles` AFTER INSERT ON `users` FOR EACH ROW begin

insert into article(uid,title,content) values(new.id,'你好','谢谢');

insert into posts(uid,title,content) values(new.id,'你好','谢谢');

end;

担心的问题:

我们建立的数据库一般都是 InnoDB 数据库,其上建立的表是事务性表,也就是事务安全的。这时,若SQL语句或触发器执行失败,MySQL 会回滚事务,有:

①如果 BEFORE 触发器执行失败,SQL 无法正确执行。

②SQL 执行失败时,AFTER 型触发器不会触发。

③AFTER 类型的触发器执行失败,SQL 会回滚。

猜你喜欢

转载自blog.csdn.net/cfun_goodmorning/article/details/80135690
今日推荐