事务中1062错误。如何恢复? 事务中1062错误。如何恢复?经过了整整一天的DEBUG.我发现一个问题start transaction;之后,后续SQL,如果insert into失败,1062。那么这个事物就没有rollback,也没有commit请问这种情况如何处理???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 · 错误:1062 SQLSTATE: 23000 (ER_DUP_ENTRY) 消息:键%d的重复条目'%s'。重复建错误之后,前面的都插入进去成功,在commit提交前要是有1条出现冲突,会回滚到插入之前,楼主的恢复是什么意思要想跳过这个错误的话,可以把sql改成把sql改成INSERT IGNORE INTO或则replace into不知道符合楼主的意思不。 用这个代替你的insertINSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; sql语句是什么?用REPLACE INTO试试 我想说的就是这个意思,在commit前出现了1062即冲突,他没有回滚。或者说这个事务没有结束。譬如我有一个存储过程AAA,代码如下start transaction;insert into ... // 在这行出现了1062commit;我发现出现1062之后,这个事务没有结束,且没有提交。你能明白我的意思吗?就是事务还在继续,如果我执行两条SQL语句:CALL AAA();update ...那么后续这个update执行成功了,但是在数据库中看不到。因为当前事务还没有结束。必须要再执行一个COMMIT;即:CALL AAA(); // 如果他的insert into 出现了1062update ... // 那么这个还属于上述的存储过程COMMIT; // 必须要手动才能提交。大家没遇到过吗?我亲自测试了,确实如此啊。!!!!! 你这个在国外论坛有用,CSDN搜索功能太弱。最早还有在小版块搜索,现在一搜索连分词都整不好,无关帖子一大堆。 我就是想insert,不想insert or update 试试:加入DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback 你这个可能可以,因为文档中也有类似的东西。但是我想确定MySQL中的存储过程就是这样的吗?因为我是一个MySQL新手。 有相关的文档推荐吗?说句实话MySQL的随机文档(我看的还是中文文档)确实不怎么友好。 他这个还有什么 FOR SQLSTATE = 2300023000是什么都不清楚,大概就是某种类型错误码估计。 对http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html#conditions-and-handlers官方说明 关于pgAdmin的问题,希望懂postgerSQL的进。。。。。。。。。 PowerDesigner做了个ORACLE数据模型 现在想把它改成MYSQL数据库的怎么改吗? 如何在windows下自动备份Mysql,同时在备份期间数据库不断开? 提问:使用OR的查询为什么执行计划不使用索引? 这句为什么能执行? 这个SQL查询怎么查 MySQL 5.0的安装问题 如何将access的数据导入到mysql里? 2000下本机连接mysql的问题!! mysql数据导出,再导入问题 困惑了我几天的sql语句,sql语句初级,求助 Where查询条件中能用函数吗?
楼主的恢复是什么意思
要想跳过这个错误的话,可以把sql改成
把sql改成INSERT IGNORE INTO或则replace into不知道符合楼主的意思不。
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
或者说这个事务没有结束。
譬如我有一个存储过程AAA,代码如下start transaction;insert into ... // 在这行出现了1062commit;我发现出现1062之后,这个事务没有结束,且没有提交。你能明白我的意思吗?就是事务还在继续,如果我执行两条SQL语句:
CALL AAA();
update ...那么后续这个update执行成功了,但是在数据库中看不到。
因为当前事务还没有结束。必须要再执行一个COMMIT;
即:CALL AAA(); // 如果他的insert into 出现了1062
update ... // 那么这个还属于上述的存储过程
COMMIT; // 必须要手动才能提交。大家没遇到过吗?我亲自测试了,确实如此啊。!!!!!
你这个在国外论坛有用,CSDN搜索功能太弱。
最早还有在小版块搜索,现在一搜索连分词都整不好,无关帖子一大堆。
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback
你这个可能可以,因为文档中也有类似的东西。但是我想确定MySQL中的存储过程就是这样的吗?因为我是一个MySQL新手。
有相关的文档推荐吗?说句实话MySQL的随机文档(我看的还是中文文档)确实不怎么友好。
http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html#conditions-and-handlers
官方说明