当前位置: 首页 > 编程笔记 >

在MySQL中实现INSERT…ON DUPLICATE KEY UPDATE

艾昊明
2023-03-14
本文向大家介绍在MySQL中实现INSERT…ON DUPLICATE KEY UPDATE,包括了在MySQL中实现INSERT…ON DUPLICATE KEY UPDATE的使用技巧和注意事项,需要的朋友参考一下

如果该行在UNIQUE索引或PRIMARY KEY中导致重复,则在向表中插入新行时会出现错误。要解决此问题,请使用ON DUPLICATE KEY UPDATE。在INSERT语句中使用此功能时,现有行将使用新值进行更新。

让我们首先创建一个表-

mysql> create table DemoTable
   -> (
   -> Value int
   -> );

这是创建索引的查询-

mysql> create unique index value_index on DemoTable(Value);
Records: 0 Duplicates: 0 Warnings: 0

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable values(40) on duplicate key update Value=Value+1000;
mysql> insert into DemoTable values(50) on duplicate key update Value=Value+1000;
mysql> insert into DemoTable values(40) on duplicate key update Value=Value+1000;

使用select语句显示表中的所有记录-

mysql> select *from DemoTable;

这将产生以下输出-

+-------+
| Value |
+-------+
|    50 |
|  1040 |
+-------+
2 rows in set (0.00 sec)
 类似资料:
  • 问题内容: 我正在尝试使用node.js插入一些数据。我已经编写了以下代码,并通过npm安装了MySQL支持,但是我无法使用该表。 这是我的代码: HTML代码: 错误消息是: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行附近使用正确的语法。’username’=’Test’,’password’=’test’ 我怎么了 问题答案: 请注意以下文档: 如果您注意了,您

  • 问题内容: 我在理解如何执行一些INSERT SELECT时有些困难。 例如我有两个表。 现在,假设我要向表网站添加另一个查询。我得到两个变量,可以说: 我想从用户表中选择John的ID,然后在一条语句中将其插入网站表中。 我该怎么做? 问题答案: 假设您的变量已经正确地转义并且没有注入:

  • 问题内容: 现在已经在网上浏览了一段时间,似乎看不到任何与我想要的东西类似的东西。我知道这与我编写查询的方式有关,但是任何帮助将不胜感激。 我正在尝试做的基础知识是: 如果表中不存在,则将其插入表中 更新项目(如果存在) 它以以下格式存在: 名称,条形码,物品,数量,位置,价格和日期 名称-可以在多行条形码中使用-用于特定项目,但可以用作多个位置项目-与条形码相同,但包含名称数量-自我说明的位置-

  • 本文向大家介绍mysql insert语句操作实例讲解,包括了mysql insert语句操作实例讲解的使用技巧和注意事项,需要的朋友参考一下 insert的语法 如果列清单和VALUES清单均为空清单,则INSERT会创建一个行,每个列都被设置为默认值: 假设worker表只有name和email,插入一条数据 批量插入多条数据 给出要赋值的那个列,然后再列出值的插入数据 使用set插入数据 在

  • 问题内容: 和 之间的主要区别是什么? 例: 那这两个的性能如何? 问题答案: 据我所知,这两种语法都是等效的。第一个是SQL标准,第二个是MySQL的扩展。 因此,它们应该在性能上完全等效。 http://dev.mysql.com/doc/refman/5.6/en/insert.html说: INSERT将新行插入到现有表中。语句的INSERT … VALUES和INSERT … SET形式

  • 问题内容: 我正在尝试用我所在国家的地理位置填充数据库。我的一张表有4个字段:ID [PK],纬度。经度和地理点 即时通讯收到以下错误:错误代码:1416无法从您发送到GEOMETRY字段的数据中获取几何对象 我很确定’geoPoint’字段是具有空间索引的POINT字段。我错过了什么吗?14 问题答案: 尝试执行此操作,而不将您的值分配给服务器值。尤其是当它们包含函数调用时。MySQL将变量的内