当前位置: 首页 > 面试题库 >

插入多行时,如何使用“ N DUPLICATE KEY UPDATE”增加MySql中的字段?

奚无尘
2023-03-14
问题内容

插入多行时,如何使用“ ON DUPLICATE KEY UPDATE”增加MySql中的字段?

对于一行:

INSERT INTO table 
  (a, counter_elem) 
VALUES 
  (1, 1)
ON DUPLICATE KEY UPDATE counter_elem = counter_elem+1;

对于多行:

INSERT INTO table 
  (a, counter_elem) 
VALUES 
  (1, 1),
  (2, 1)
ON DUPLICATE KEY UPDATE counter_elem = ?;

这不起作用:

counter_elem = VALUES(counter_elem)+1

问题答案:

完全一样!

INSERT INTO table 
  (a, counter_elem) 
VALUES 
  (1, 1),
  (2, 1)
ON DUPLICATE KEY UPDATE counter_elem = counter_elem + 1;

那里没有问题!



 类似资料:
  • 问题内容: 如何使用php将多个数据插入mysql数据库。我尝试使用for循环,但没有运气。 问题答案: 只需在循环中构建查询,然后在循环竞争时执行查询即可 您还会注意到,我将您对数据库连接的包含移到了循环之外。无需重复拨打该电话。 另外,请确保您逃脱了要插入的那些值,或者使用参数化查询来进行插入,以防止SQL注入。

  • 问题内容: 我有一个PreparedStatement,例如: 如您所见,Employee表具有一个自动递增的ID。我基本上也需要使用prepareStatement自动添加它。有人可以告诉我我要去哪里哪里并纠正我吗?现在,这只是给我一个与Statement相关的错误。 问题答案: 将该列 完全 放在语句之外。它将由数据库引擎生成。您的查询应为: __ 其次,您必须先执行插入操作,然后再从结果中取

  • 问题内容: 错误: 违反主键约束。 无法在对象中插入重复的密钥。 如何使第一行之后的主键递增? 我希望能够同时向此表添加项目列表,而不是将其插入RBAR。 谢谢您的帮助 问题答案: 仅对于此语句,ID将是顺序的,例如,如果ID为99,并且要插入4条记录,则ID为100、101、102、103。如果同时插入多个进程,则很容易违反约束,但是这并不是说,这比使用单条记录本质上不安全的情况要糟。

  • 问题内容: 这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 如果一次插入多行,数据库查询会更快吗: 喜欢 (我需要插入2-3000行) 问题答案: 使用语法的语句可以插入多行。为此,请包括多个列值列表,每个列值括在括号内并用逗号分隔。 例: 资源

  • 问题内容: 我使用此命令在两列表中插入一些单词: 如何获取每个单词插入行的ID(主键)。我的意思是执行后返回“ 55,56,57”之类的值。MySQL有这样的反应吗? 术语列是。如果一个术语已经存在,MySQL将不会插入它。是否可以返回该重复项的引用(即该术语所在行的ID)?像“55,A响应 12 ,56”。 问题答案: 您可以通过调用框架或MySQL库(使用任何语言)来获取它。 那行不通。插入后

  • 我试图在表中插入一行,带有一个自动递增字段,但我遇到了错误。该表的结构为: id:自动增量 级别:文本 概念:文本 . 在w3c中,我了解到要将新记录插入表中,我们不必为“自动增量”列指定值(将自动添加唯一值)。 我做错了什么?