BEGIN DECLARE EXCEPTION INT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET EXCEPTION = 1; START TRANSACTION; SET AUTOCOMMIT = 0; CALL SP_1; IF EXCEPTION = 1 THEN
ROLLBACK;
INSERT INTO `ERRORMESSAGE` SELECT 'ERROR!',NULL;
ELSE
COMMIT;
END IF; SET AUTOCOMMIT = 1;END这个是SP里面的内容,运行的时候会在ERRORMESSAGE里面写入'ERROR!',并回滚,也就是说中间有地方出错了,但是改成下面这样运行时一切正常:BEGIN
START TRANSACTION; SET AUTOCOMMIT = 0; CALL SP_1; COMMIT; SET AUTOCOMMIT = 1;END仅仅是把DECLARE CONTINUE HANDLER的相关语句去掉而已,难道说是DECLARE CONTINUE HANDLER语句有问题吗?我看了半天没看出问题来
解决方案 »
- linux上的mysql数据库。如何备份?急等!!
- 问个PostgreSQL数据库的问题
- mysql variables 变量哪个表示配置文件的路径呢?
- 如何写.bat文件,连接PostgreSQl,执行SQL文件.
- phpmyadmin的怪问题
- 用sqlyog操作mysql总是出错
- 急! 请问如何查看mysql正在执行的SQL语句?
- 关于在linux下编译连接MYSQL数据库的程序,该包括哪个库?
- Windows XP下ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)?
- Mysql数据库数据乱码怎么恢复?
- [求助]Mysql 保留两条重复值
- 如何建立mysql可视化平台
的意思是不管是否发生错误,都继续往下执行。在EBGIN之前SET EXCEPTION = 1;试试
你这没循环啊。