create table test1 (
id int not null auto_increment primary key,
a varchar(16), b varchar(16)
);
INSERT INTO test1 (a,b) VALUES ('a1','b3') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), b='3';
上面的行應該插入一個條目,因爲表是空的。Mysql在重複鍵上插入last_insert_id不起作用
INSERT INTO test1 (a,b) VALUES ('a1','b3') ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), b='3';
再次運行線路,它應該"3"
因爲a1, b3
已經存在替代b
。但是mysql爲我添加了另一條線。我搜索了一段時間,找不到解決方案。
最新更新:感謝您的幫助。我覺得其中一列必須是獨一無二的。
改變表test1添加唯一(a)
解決問題。
該id是主鍵。這將被視爲唯一索引?謝謝 – user661192 2011-03-15 19:03:30
主鍵是UNIQUE INDEX的特例,所以是的。但是由於INSERT不會創建主鍵的重複值,因此不會使用update子句。 – Konerak 2011-03-15 19:33:13