【发布时间】:2010-09-18 07:05:43
【问题描述】:
我正在使用 mysql (5.0.32-Debian_7etch6-log) 并且我有一个夜间运行的批量加载 php (5.2.6) 脚本 (通过 PDO 使用 Zend_DB (1.5.1))执行以下操作:
- 截断一组 4 个“导入”表
- 将数据批量插入到这 4 个“导入”表中(重新使用以前在表中的 id,但我截断了整个表,所以这应该不是问题,对吧?)
- 如果一切顺利,将“live”表重命名为“temp”,将“import”表重命名为“live”,然后将“temp”(旧的“live”)表重命名为“import”
这几个星期都很好用。现在我偶尔会得到这个,在整个批量加载过程的中间的某个地方:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '911' for key 1
请注意,这不是截断之前表中的第一个 id。当我再次手动启动脚本时,它就像一个魅力。
有什么想法吗?剩余索引,可能与重命名有关?
此外,当我之后检查表中 id 为 911 的条目时,它甚至都不在那里。
【问题讨论】:
标签: php mysql rename truncate mysql-error-1062