手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >MySQL 在触发器里中断记录的插入或更新?
MySQL 在触发器里中断记录的插入或更新?
摘要:下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。mysql>createtablet_control(id...

下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。

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>

【MySQL 在触发器里中断记录的插入或更新?】相关文章:

从MySQL复制功能中得到的一举三得实惠分析

Mysql字符串截取函数SUBSTRING的用法说明

将MySQL的临时目录建立在内存中的教程

MySQL将表a中查询的数据插入到表b中

MySQL 绿色版安装方法图文教程

MySQL 有输入输出参数的存储过程实例

SQL Server 2005建立与服务器的连接时出错的解决方案

解决MySQL数据库中文模糊检索问题的方法

mysql如果数据不存在,则插入新数据,否则更新的实现方法

MySQL数据库备份方法说明

精品推荐
分类导航