Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql自动递增错误_Mysql_Auto Increment - Fatal编程技术网

mysql自动递增错误

mysql自动递增错误,mysql,auto-increment,Mysql,Auto Increment,我有一个简单的问题 INSERT INTO t1 (fields...) (SELECT fields... FROM t2); 它插入了大约8.000行,表的自动增量值设置为~16.000,但不完全是2倍。我没有在查询中包含自动递增的id,并且表被截断。会是虫子吗?我有5.5.24版。 为什么会这样,我怎样才能避免呢 CREATE TABLE `order` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `` int(4) NOT

我有一个简单的问题

INSERT INTO t1 (fields...) (SELECT fields... FROM t2);
它插入了大约8.000行,表的自动增量值设置为~16.000,但不完全是2倍。我没有在查询中包含自动递增的id,并且表被截断。会是虫子吗?我有5.5.24版。 为什么会这样,我怎样才能避免呢

CREATE TABLE `order` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `` int(4) NOT NULL COMMENT '',
  `` int(6) NOT NULL COMMENT '',
  `` varchar(255) NOT NULL COMMENT '',
  `` varchar(255) NOT NULL COMMENT '',
  `` bigint(10) unsigned NOT NULL COMMENT '',
  `` int(5) unsigned NOT NULL COMMENT '',
  `` int(5) unsigned NOT NULL COMMENT '',
  `` int(8) unsigned NOT NULL COMMENT '',
  `` varchar(255) DEFAULT NULL COMMENT '',
  `` int(3) DEFAULT NULL COMMENT '',
  `` int(3) DEFAULT NULL COMMENT '',
  `` date NOT NULL COMMENT '',
  `` date DEFAULT NULL,
  `` date DEFAULT NULL COMMENT '',
  `` int(5) DEFAULT NULL COMMENT '',
  `` varchar(2) DEFAULT NULL COMMENT '',
  `` int(5) DEFAULT NULL COMMENT '',
  `` varchar(255) DEFAULT NULL,
  `` varchar(255) DEFAULT NULL,
  `` char(1) DEFAULT NULL,
  `` datetime DEFAULT NULL,
  `` int(10) unsigned DEFAULT NULL,
  `` datetime DEFAULT NULL,
  `` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `` (``),
  KEY `` (``),
  KEY `` (``),
  CONSTRAINT `` FOREIGN KEY (``) REFERENCES `users` (`id`),
  CONSTRAINT `` FOREIGN KEY (``) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8440 DEFAULT CHARSET=utf8

谢谢。

这可能是由服务器的配置引起的(例如,
/etc/my.cnf
): 您可以设置
自动增量
自动增量
偏移量

如果第一个设置为
x
,则下一个id将使用
(最后一个id+x)
。 如果第二个id设置为
y
,则始终从
y
开始(然后每次添加
x

更可能的情况是:您只是删除了表中的所有行,然后再次插入。这样,自动增量值不会再次设置为1。必须
截断tablename
才能再次重置此计数器(如果确实要删除所有行)

编辑:


刚才看到了您的
createtable
语句。如果您确实在选项中使用
AUTO_INCREMENT=8440
创建了表,那么在插入8000行之后,您的ID将为16000。如果这只是insert语句之后的
SHOW CREATE TABLE
,我仍然不知道发生了什么。

这是对新表的初始插入还是可能有一些已删除的记录?截断应该可以工作。看,是的,我知道,这就是为什么对我来说也很奇怪。你检查过小提琴中的自动增量系统变量吗?我以前从未见过小提琴,对不起。。。我真的不知道该怎么办。我有一个基本的wampserver配置,我不认为有任何非默认的
auto\u increment\u offset
auto\u increment\u increment
值设置。是的,我已经检查过了,并且都设置为
1