3

错误处理程序可以在程序之外声明吗?

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 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“DECLARE EXIT HANDLER FOR NOT FOUND ROLLBACK”附近使用正确的语法

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

提前致谢。

ps

这三个句柄会捕获所有错误吗?

4

1 回答 1

2

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

于 2012-12-31T11:39:26.913 回答