我有这种结构的测试表:
CREATE TABLE IF NOT EXISTS `test` (
`id_pc` int(11) NOT NULL AUTO_INCREMENT,
`id_vendor` int(11) NOT NULL,
`id_product` int(11) NOT NULL,
`test` int(11) NOT NULL,
PRIMARY KEY (`id_pc`),
UNIQUE KEY `id_vendor` (`id_vendor`,`id_product`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如您所见,UQ 密钥设置在与 PK 不同的 2 列上,即 AI。
简单测试查询:
INSERT INTO test(id_vendor, id_product, test)
VALUES (1,1,1) ON DUPLICATE KEY UPDATE test = 1;
每次我运行查询时,它都会增加 AUTO_INCREMENT 值(所以没有插入,只有更新)。这是正常行为还是我错过了什么?