我有一个简单MySQL的自动递增错误
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
谢谢。
这是初始插入新表还是可能存在一些已删除的记录? –
截断应该工作。见[这里](http://sqlfiddle.com/#!2/dd8e2/6) –
是的,我知道,这也是为什么我也很奇怪。 – user2511599