处理程序是否可以在程序外声明(MySql)?

时间:2012-12-31 11:32:49

标签: mysql handlers

是否可以在程序外声明错误处理程序?

DECLARE EXIT HANDLER FOR NOT FOUND ROLLBACK;
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
DECLARE EXIT HANDLER FOR SQLWARNING ROLLBACK;

START TRANSACTION;

INSERT INTO ad_type VALUES (3, 'test');

INSERT INTO ad_type_languages VALUES (3, 'TEST', 'en' , 'yes');

COMMIT;

当我尝试执行此代码时出现错误:

第1行的错误1064(42000):您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第3行“DECLARE EXIT HANDLER FOR NOT FOUND ROLLBACK”附近使用正确的语法

当我在程序中执行它时运行正常,但我需要在脚本中没有存储过程。

提前致谢。

P.S。

这三个句柄会抓住所有错误吗?

1 个答案:

答案 0 :(得分:1)

声明退出处理程序只能在存储过程,函数或触发器中声明,如果我没有弄错的话。没有可能在那之外宣布它。