【发布时间】:2011-12-30 17:04:19
【问题描述】:
在我的 MySQL 表中,我创建了一个 ID 列,我希望它能够自动递增以使其成为主键。
我已经创建了我的表:
CREATE TABLE `test` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 50 ) NOT NULL ,
`date_modified` DATETIME NOT NULL ,
UNIQUE (
`name`
)
) TYPE = INNODB;
然后插入我的记录:
INSERT INTO `test` ( `id` , `name` , `date_modified` )
VALUES (
NULL , 'TIM', '2011-11-16 12:36:30'
), (
NULL , 'FRED', '2011-11-16 12:36:30'
);
我希望我上面的 ID 是 1 和 2(分别)。到目前为止,这是真的。 但是,当我做这样的事情时:
insert into test (name) values ('FRED')
on duplicate key update date_modified=now();
然后插入一条新记录,我希望它是 3,但是现在显示的 ID 为 4;跳过 3 的地方。
通常这不是问题,但我使用的记录数以百万计,每天都有数以千计的更新......而且我什至不想仅仅因为我是跳过一大堆数字..
知道为什么会这样吗?
MySQL 版本:5.1.44
谢谢
【问题讨论】:
标签: mysql primary-key auto-increment