Mysql 怎么 在 触发器 中 抛出异常和取消操作CREATE TRIGGER `test_before_ins_tr` BEFORE INSERT ON `test`
FOR EACH ROW
BEGIN
set @i= new.i;IF @i> 30 THEN
-- 在这里抛出异常和取消 insert 操作
end if;END;
请问如何实现 ????
FOR EACH ROW
BEGIN
set @i= new.i;IF @i> 30 THEN
-- 在这里抛出异常和取消 insert 操作
end if;END;
请问如何实现 ????
解决方案 »
- 电子商务数据库结构设计问题
- 求一个编写mysql存储过程的工具
- create table `message`( `id` tinyint(2) no null auto_increment primary key, `use
- 关于MySQL删除记录后ID如何联系
- MySQL可以记录插入数据出错的日志吗?
- 翻译 Twin Project
- 求一SQL语句!
- 如何将 MySql 数据库 移植到 Oracle 数据库
- 做一个百货公司的网站,正考虑使用哪种数据库,请帮帮忙。
- MySQL层次查询
- 哪位仁兄用.Net 通过Connector Net 5.1.1连接过Mysql,怎么客户端程序显示出来的中文都是乱码?
- mysql insert 中文乱码
select 'Error';
IF @i> 30 THEN
-- 在这里抛出异常和取消 insert 操作
SELECT E001 INTO M_ERRMSG;
end if
;1. MYSQL没有抛出异常的语句,MYSQL已经承认此语句为SIGNAL,目前还没封装.
2. 所以目前能做的是, 要在抛出异常的地方,插入一个错误语句
3. 这个错误语句只能是运行期错误语句,否则编译无法通过
4. 用SELELCT E001 INTO M_ERRMSG, 其中E001可以随便定义为一个不存在字段或函数, 因为这个错误是运行期错误,编译是可以通过的. 后面的INTO M_ERRMSG实际上没有什么用处, 因为SELECT 后面必须加INTO一个变量,否则编译也是不可以通过.