插入数据疑惑

12free 2013-02-01 03:09:45
在Mysql 中写了一个存储过程。
里面有插入数据的操作
例如
DROP PROCEDURE IF EXISTS `P_InsertDate`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `P_InsertDate`(
IN pdate datetime
)
BEGIN
insert into t1(d)values(pdate);
END

偶然会插入不成功,又不报错,又没有提示超时等问题,过一段时间或重启mysql服务又可以插入成功。
不解!
...全文
299 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
12free 2013-02-03
  • 打赏
  • 举报
回复
引用 5 楼 ACMAIN_CHM 的回复:
你所提供的日志中根本找不到 P_InsertDate
对不起,P_InsertDate 只是我举的例子,日志只是其中一部分,发现所有的sp都给我rollback,所以很困惑。我发现只要我在存储过程中加入autocommit=0,commit;就不会出现这种情况。版主你认为是什么情况?
ACMAIN_CHM 2013-02-03
  • 打赏
  • 举报
回复
你所提供的日志中根本找不到 P_InsertDate
12free 2013-02-02
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
打开MYSQL一般查询日志看一下有什么可以分析的记录。
跟踪日志发现,产生了rollback的情况,重启mysql服务又没有问题了,而且在存储过程中,我也没有加入rollback机制。这是因为我的mysql服务设置问题导致自动rollback吗? 3 Init DB mydata 3 Query CALL `mydata`.`P_GetItemData`(2, '', '') 3 Query ROLLBACK 130202 21:55:42 3 Init DB mydata 3 Query CALL `mydata`.`P_GetLoadForCheck`(1, 1, 0) 3 Query ROLLBACK 130202 21:55:44 3 Init DB mydata 3 Query CALL `mydata`.`P_GetLoadForCheck`(1, 0, 0) 3 Query ROLLBACK 130202 21:56:04 3 Init DB mydata 3 Query CALL `mydata`.`P_GetItemData`(2, '', '') 3 Query ROLLBACK 130202 21:56:12 3 Init DB mydata 3 Query CALL `mydata`.`P_GetLoadForCheck`(1, 0, 0) 3 Query ROLLBACK
12free 2013-02-01
  • 打赏
  • 举报
回复
引用 2 楼 rucypli 的回复:
没有报错信息 那你是怎么知道偶然插入不成功的
call P_InsertDate('2013-02-01'); 表 t1 没有数据。
rucypli 2013-02-01
  • 打赏
  • 举报
回复
没有报错信息 那你是怎么知道偶然插入不成功的
ACMAIN_CHM 2013-02-01
  • 打赏
  • 举报
回复
打开MYSQL一般查询日志看一下有什么可以分析的记录。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧