【 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