我有带有自动增量列的表格,如下所示。
CREATE TABLE `garment_master2` (
`GARMENT_ID2` int(11) NOT NULL AUTO_INCREMENT,
`GARMENT_NAME1` varchar(50) NOT NULL,
PRIMARY KEY (`GARMENT_ID2`),
KEY `NDX_gar_name` (`GARMENT_NAME1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
当一行一行插入时,自动增量值是连续的。但是,如果我使用 insert into 命令一次插入多行,则最终自动增量值大于 GARMENT_ID2
值,即,如果插入 12 行,则 GARMENT_ID2
值为 12 并且自动增量值为16。
请帮助我理解为什么自动增量值设置不正确。
最佳答案
试试这个
CREATE TABLE `garment_master2` (
`GARMENT_ID2` int NOT NULL IDENTITY(1,1),
`GARMENT_NAME1` varchar(50) NOT NULL,
PRIMARY KEY (`GARMENT_ID2`),
KEY `NDX_gar_name` (`GARMENT_NAME1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
不要使用自动增量,而是使用身份。
关于mysql自动增量值没有按顺序更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734539/