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 自动递增。 至于现在它保持不变,因为没有新行插入...
我应该删除然后插入吗?
最佳答案
您似乎正在寻找 REPLACE
而不是INSERT ... ON DUPLICATE KEY
;如果存在主键或唯一键冲突的行,它将删除旧行,并插入具有新 FEED_ID
的新行;
REPLACE INTO feeds (p_id,p_name) VALUES (1,'Olle');
关于mysql - 关于重复 key 更新...如何更新自动增量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318542/