2013-06-26 32 views
2
CREATE TABLE `feeds` (
`FEED_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
`P_ID` bigint(20) NOT NULL, 
`P_NAME` varchar(100) NOT NULL, 
PRIMARY KEY (`P_ID`), 
UNIQUE KEY `FEED_ID` (`FEED_ID`) 
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 

::關於DUPLICATE KEY UPDATE ...如何更新AUTO INCREMENT?

INSERT INTO `table_a` (`P_ID`,`P_NAME`) VALUES ('30','John') 
ON DUPLICATE KEY UPDATE `P_ID`= VALUES(`P_ID`),`P_NAME`= VALUES(`P_NAME`); 

我想用INSERT ..對重複密鑰更新 隨時在那裏我創建的插入,我想的FEED_ID自動遞增。 至於現在它保持不變,因爲沒有新的行插入...

我應該刪除然後插入?

+1

'PRIMARY KEY(\'BIZ_ID \')'< - 其中是'BIZ_ID'? – hjpotter92

+0

你可以舉一個例子來顯示你的表的一些數據,在插入之前和之後觸發ON DUPLICATE?它不完全清楚,你想達到什麼。 –

+0

對不起@ hjpotter92,編輯 – Ted

回答

3

這看起來像你正在尋找REPLACE而不是INSERT ... ON DUPLICATE KEY;它將刪除舊行(如果存在衝突的主鍵或唯一鍵),並插入一個新行,並帶有新的FEED_ID;

REPLACE INTO feeds (p_id,p_name) VALUES (1,'Olle'); 

An SQLfiddle to test with

+1

給我一個擁抱真情! – Ted

相關問題