【发布时间】:2016-02-05 10:08:25
【问题描述】:
我需要一些让我感到困惑的事情的指导。我有一个 mysql 插入查询,它在 99% 的时间里都可以工作,但在某些情况下,自动增量字段会更新,但不会插入行。查询如下:
$result = mysql_query("insert into receipts
values('','".$rcptno."','".$cid."','".$names."','".$stream."','".$pname."',
'".$fintot."','cr','".date('Y/m/d')."','".date('Ymd')."','1','".$username."','".
$sess."','".$refno."','".$prevbal."','".$newbal."')");
当我再次尝试插入相同的数据时,它会完美插入。我只是想知道可能导致此问题的原因。
提前致谢。
【问题讨论】:
-
这很正常。即使实际记录没有进入磁盘,
auto_increment也会增加。这种行为必须是这样的,否则 MySQL 将无法保证安全的并发访问。如果您想知道出了什么问题(通常是死锁问题) - 使用SHOW ENGINE INNODB STATUS;并阅读冗长的消息以查看导致 MySQL 拒绝将数据写入磁盘的原因。发生这种情况时,通常的方法是重试事务。 -
学到了一些新东西 - SHOW ENGINE INNODB 。谢谢。
标签: mysql sql-insert