各位用户为了找寻关于MySQL 在触发器里中断记录的插入或更新?的资料费劲了很多周折。这里教程网为您整理了关于MySQL 在触发器里中断记录的插入或更新?的相关资料,仅供查阅,以下为您介绍关于MySQL 在触发器里中断记录的插入或更新?的详细内容

下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。  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.col>30 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.col>30 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>