首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新/插入

问更新/插入
EN

Stack Overflow用户
提问于 2013-10-15 17:38:16
回答 1查看 44关注 0票数 0

当我使用这个mysql语句时,我总是会得到一个新行,而不是更新?

代码语言:javascript
复制
INSERT INTO buyclick SET counter=1, link_id=3 
ON DUPLICATE KEY UPDATE
  id = LAST_INSERT_ID(id),
  counter = counter + 1,
  link_id = 3 

表结构:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2013-10-15 17:43:43

您还应该插入一个id,以便触发更新。例如,如果您已经有一条id为10的记录,请执行以下操作:

代码语言:javascript
复制
INSERT INTO buyclick SET id=10, counter=1, link_id=3 
ON DUPLICATE KEY UPDATE
  counter = counter + 1,
  link_id = 3

假设您的表有一个主键id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19377869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档