この構造のテストテーブルがあります:
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 キーは AI である PK とは異なる 2 つの列に設定されています。
簡単なテスト クエリ:
INSERT INTO test(id_vendor, id_product, test)
VALUES (1,1,1) ON DUPLICATE KEY UPDATE test = 1;
クエリを実行するたびに、AUTO_INCREMENT 値がインクリメントされます (したがって、挿入は行われず、更新のみが行われます)。これは正常な動作ですか、それとも何か不足していますか?