0x0*_*0x0 5 php mysql auto-increment on-duplicate-key
我目前具有包括一次关键问题ID被设置为auto increment.它不断增加ON DUPLICATE KEY.
例如:
ID | field1 | field2
1 | user | value
5 | secondUser | value
86 | thirdUser | value
Run Code Online (Sandbox Code Playgroud)
从上面的描述中,您会注意到我在该表中有3个输入但由于每次更新时自动递增,因此第三个输入的ID为86.
反正有没有避免这个?
这是我的mySQL查询的样子:
INSERT INTO table ( field1, field2 ) VALUES (:value1, :value2)
ON DUPLICATE KEY
UPDATE field1 = :value1, field2 = :value2
Run Code Online (Sandbox Code Playgroud)
这就是我的桌子的样子;
CREATE TABLE IF NOT EXISTS `table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`field1` varchar(200) NOT NULL,
`field2` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `field1` (`field1`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Run Code Online (Sandbox Code Playgroud)
您可以将innodb_autoinc_lock_modeconfig选项设置"0"为"传统"自动增量锁定模式,这可以保证所有INSERT语句都为AUTO_INCREMENT列分配连续值.
也就是说,您不应该依赖应用程序中连续的自动增量ID.他们的目的是提供唯一标识符.