已解决
来自开发人员:问题是以前版本的代码仍在写入使用手动 ID 而不是自动递增的表。 self 注意:始终检查表被写入的其他可能位置。
我们在表中得到重复键。它们不是同时插入的(相隔 6 小时)。
表结构:
CREATE TABLE `table_1` (
`sales_id` int(10) unsigned NOT NULL auto_increment,
`sales_revisions_id` int(10) unsigned NOT NULL default '0',
`sales_name` varchar(50) default NULL,
`recycle_id` int(10) unsigned default NULL,
PRIMARY KEY (`sales_id`),
KEY `sales_revisions_id` (`sales_revisions_id`),
KEY `sales_id` (`sales_id`),
KEY `recycle_id` (`recycle_id`)
) ENGINE= MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26759 ;
插入:
insert into `table_1` ( `sales_name` ) VALUES ( "Blah Blah" )
我们使用 PHP5 运行 MySQL 5.0.20,并在插入查询后立即使用 mysql_insert_id() 检索插入 ID。
最佳答案
我以前在MySql数据库中遇到过几个重复键的错误,尽管主键已经定义并且auto_increment。每次都是因为表已损坏。
如果它已损坏,执行检查表应该会暴露问题。你可以通过运行来做到这一点:
CHECK TABLE tbl_name
如果它无论如何都损坏了(通常会说尺寸比实际尺寸大),那么只需运行以下命令来修复它:
REPAIR TABLE tbl_name
关于mysql - 什么会导致自动递增主键字段 (mysql) 出现重复 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/514018/