当我使用这个mysql语句时,我总是会得到一个新行,而不是更新?
INSERT INTO buyclick SET counter=1, link_id=3
ON DUPLICATE KEY UPDATE
id = LAST_INSERT_ID(id),
counter = counter + 1,
link_id = 3 表结构:
CREATE TABLE `buyclick` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`link_id` int(11) DEFAULT NULL,
`counter` int(11) DEFAULT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `clickeditem` (`link_id`),
KEY `count` (`counter`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;发布于 2013-10-15 17:43:43
您还应该插入一个id,以便触发更新。例如,如果您已经有一条id为10的记录,请执行以下操作:
INSERT INTO buyclick SET id=10, counter=1, link_id=3
ON DUPLICATE KEY UPDATE
counter = counter + 1,
link_id = 3假设您的表有一个主键id。
https://stackoverflow.com/questions/19377869
复制相似问题