MySQL 在触发器里中断记录的插入或更新?

2016-02-19 09:42 26 1 收藏

下面图老师小编要跟大家分享MySQL 在触发器里中断记录的插入或更新?,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - 编程语言 】

下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。
mysql create table t_control(id int primary key);
Query OK, 0 rows affected (0.11 sec)
mysql insert into t_control values (1);
Query OK, 1 row affected (0.05 sec)
mysql create table t_bluerosehero(id int primary key,col int);
Query OK, 0 rows affected (0.11 sec)
mysql delimiter //
mysql create trigger tr_t_bluerosehero_bi before insert on t_bluerosehero
- for each row
- begin
- if new.col30 then
- insert into t_control values (1);
- end if;
- end;
- //
Query OK, 0 rows affected (0.08 sec)
mysql delimiter ;
mysql
mysql insert into t_bluerosehero values (1,20);
Query OK, 1 row affected (0.25 sec)
mysql insert into t_bluerosehero values (2,40);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
mysql
mysql select * from t_bluerosehero;
+----+------+
| id | col |
+----+------+
| 1 | 20 |
+----+------+
1 row in set (0.00 sec)
mysql
或者
mysql delimiter //
mysql create trigger tr_t_bluerosehero_bi before insert on t_bluerosehero
- for each row
- begin
- declare i int;
- if new.col30 then
- insert into xxxx values (1);
- end if;
- end;
- //
Query OK, 0 rows affected (0.06 sec)
mysql delimiter ;
mysql delete from t_bluerosehero;
Query OK, 3 rows affected (0.05 sec)
mysql insert into t_bluerosehero values (1,20);
Query OK, 1 row affected (0.06 sec)
mysql insert into t_bluerosehero values (2,40);
ERROR 1146 (42S02): Table 'csdn.xxxx' doesn't exist
mysql

来源:http://www.tulaoshi.com/n/20160219/1591803.html

延伸阅读
问题 我有一个创建在表上的触发器,当对表执行一个INSERT,DELETE或者UPDATE语句时,这个触发器将被激活执行。我想在一个特定的语句上阻止触发器被激活,而当执行其它语句时触发器仍然保持正常的执行状态。有没有一种方法可以动态做到这些? 专家解答 在某些时候,停用触发器是可能需要你去做的事情,尤其是你在一张表上执...
标签: 电脑入门
6.6.1 操作前准备步骤1: 在需要插入音频的那张幻灯片中单击插入菜单,在其下拉菜单中,选中影片和声音命令,在其下一级菜单中选中文件中的声音选项,如图6-30所示: 图 6-30 在 插入声音对话框找到你要插入的音频文件,选中,单击确定命令, 图 6-31 插入声音对话框 步骤2: 导入音频文件后,打开Microsoft Office PoerPoint的播...
触发器的概念:“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事件,如INSERT或DELETE发生时,自动激活的一段代码。触发器可方便地用于日志记录、对单个表格到其他链接式表格进行自动的“层叠式”更改、或保证对表格关系进行自动更新。当一个新整数值增加到数据库域中时...
标签: 电脑入门
触发器存在于自定义动画的计时选项中,是wps演示中的一项很重要的功能,作用是通过触发来实现播放设置对象动画,实现交互的目的。 触发器当然是有触而发,不触发设置触发器的对象,触发器下设置的一些动画就不会播放,在编辑状态可以通过标记发现触发器的存在。 打开带有触发器的wps演示文稿。执行幻灯片放映 自定义动画命令,打开自定义动...
标签: 电脑入门
有朋友问什么是PPT触发器,从原理上讲其实很简单,微软官方给出的解释是:PPT触 发器仅仅是PPT中的一项功能,它可以是一个图片、图形、按钮,甚至可以是一个段落或文本框,单击触发器时它会触发一个操作,该操作可能是声音、电影或动 画。而我对PPT触发器的理解为:通过按钮点击控制PPT页面中已设定动画的执行(读起来相当拗口,但应用才是...

经验教程

522

收藏

74
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部