事务中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官方说明 mysql大量资料导入导出 MySQL数据更新后在不同客户端查询结果不一致 MySQL Administrator1.2更改用户密码问题。 请问这样的查询一条SQL语句能实现么 PostgreSQL建立表分区的问题? postgresql + .net 请教一个查询并分类的语句 求SQL语句一条,救命! 求大神优化sql order by 一个索引字段没有起效的疑惑 困惑了我几天的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
官方说明