2
CREATE TABLE IF NOT EXISTS `foo` (
`foo_id` INT NOT NULL AUTO_INCREMENT ,
`unique` CHAR(255) NULL ,
`not_unique` CHAR(255) NULL ,
PRIMARY KEY (`foo_id`) ,
UNIQUE INDEX `unique_UNIQUE` (`unique` ASC))
ENGINE = InnoDB;
這是表格。在重複鍵上插入導致自動增加字段中的問題
INSERT INTO foo (`unique`,`not_unique`) VALUES ('John','Doe')
ON DUPLICATE KEY UPDATE `foo_id`=LAST_INSERT_ID(`foo_id`);
SELECT LAST_INSERT_ID();
LAST_INSERT_ID這裏返回1.這是正確的。
INSERT INTO foo (`unique`,`not_unique`) VALUES ('John','Doe')
ON DUPLICATE KEY UPDATE `foo_id`=LAST_INSERT_ID(`foo_id`);
SELECT LAST_INSERT_ID();
LAST_INSERT_ID這裏返回1.這是正確的。
INSERT INTO foo (`unique`,`not_unique`) VALUES ('Jane','Doe')
ON DUPLICATE KEY UPDATE `foo_id`=LAST_INSERT_ID(`foo_id`);
SELECT LAST_INSERT_ID();
LAST_INSERT_ID這裏返回3.爲什麼?我希望它是2.如果這是一個錯誤,是否有解決方法?
它是3.那麼是什麼?你不應該依賴代理PK值 – zerkms