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

::

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.. ON DUPLICATE KEY UPDATE ,无论何时我创建该插入,我都希望 FEED_ID 自动递增。至于现在它保持不变,因为没有新的行插入......

我应该删除然后插入吗?

4

1 回答 1

3

看起来您正在寻找REPLACE而不是INSERT ... ON DUPLICATE KEY; 如果存在具有冲突的主键或唯一键的旧行,它将删除旧行,并插入带有新的新行FEED_ID

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

一个用于测试的 SQLfiddle

于 2013-06-26T11:30:30.237 回答