当前位置:  开发笔记 > 编程语言 > 正文

什么可能导致自动增量主键字段(mysql)上的重复ID?

如何解决《什么可能导致自动增量主键字段(mysql)上的重复ID?》经验,为你挑选了1个好方法。

解决

来自开发人员:问题是以前版本的代码仍在写入使用手动ID而不是自动增量的表.自我注意:始终检查写入表的其他可能位置.

我们在表格中获得了重复的密钥.它们不是同时插入的(相隔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.



1> Jon Cahill..:

我在过去的MySql数据库中突然出现了一些重复的密钥错误,即使定义了主键和auto_increment.每次都是因为桌子已经损坏了.

如果它是损坏的执行检查表应该暴露问题.你可以通过运行:

CHECK TABLE tbl_name

如果它反过来又变得腐败(通常会说它的大小比实际应该大),那么只需运行以下命令来修复它:

REPAIR TABLE tbl_name

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有