调整 INSERT ON DUPLICATE KEY UPDATE

雅各布·麦卡伦

我正在尝试更改一些关于如何在我的游戏中保存项目的旧弃用代码。当前的方法是删除所有项目,然后插入所有项目,然后插入设备(项目的子表)。它具有相当大的性能影响,我想知道将 INSERTS 更改为 INSERTS ON DUPLICATE KEY UPDATE 是否会对性能产生显着影响。

如果是这样,那么我有一个后续问题。我的计划是用它们原来的inventoryitemid加载这些物品,然后将其用作以后保存的关键。

问题是在执行以下语句时:

INSERT INTO inventoryitems (inventoryitemid, itemid) VALUES (?, ?) ON DUPLICATE KEY UPDATE ...

可能会错过一些条件。如果 MySQL 不存在默认值(自动增量),我想要的是 INSERT,否则 UPDATE。目前生成的新项目的inventoryitemid 为0,因为无论如何都是在INSERT 上生成的。

tl;dr:我需要一种方法来插入重复的密钥更新,而无需事先拥有库存项目(因为新项目是在游戏中以 0 的库存项目生成的)。目前我必须事先指定inventoryitemid 是什么,我可能无法访问该信息。

第一个目标和问题

  1. 尝试插入一个在数据库中不存在的新项目,而无需事先拥有库存项目。
  2. 项目不会使用下一个递增的 db 值插入到数据库中。

第二个目标(没问题)

  1. 尝试使用现有库存项目 ID 将项目插入数据库
  2. 数据库成功更新了数据库中的项目(耶!)

尝试解决方案:插入带有 NULL 的值以尝试触发自动增量

巴马

插入新行时,指定inventoryitemid = NULL. 这将创建一个新行,因为它不是重复的键,并且会自动增加inventoryitemid.

插入这样的新项目后,您可以使用LAST_INSERT_ID()来获取inventoryitemid分配给它的 。然后您可以将其发送到游戏代码,以便它知道新项目具有此 ID。然后它可以在未来的更新中使用这个 ID,而不是发送NULL.

修改现有行时,请指定其inventoryitemid. 然后ON DUPLICATE KEY UPDATE代码将替换它而不是插入新行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

INSERT ... ON DUPLICATE KEY UPDATE不起作用

来自分类Dev

将UPDATE转换为INSERT INTO ON DUPLICATE KEY UPDATE语句

来自分类Dev

INSERT INTO ... ON DUPLICATE KEY UPDATE似乎不起作用

来自分类Dev

PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用

来自分类Dev

MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

来自分类Dev

MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

来自分类Dev

如何在带有ON DUPLICATE KEY UPDATE的INSERT查询中使用WHERE子句?

来自分类Dev

Java上的MySQL“ INSERT ... ON DUPLICATE KEY UPDATE”:如何区分插入/更新/ NoChange状态

来自分类Dev

将内部联接和where子句添加到INSERT INTO ON DUPLICATE KEY UPDATE

来自分类Dev

MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

来自分类Dev

指定单个列时,MySQL批量INSERT .. ON DUPLICATE KEY UPDATE

来自分类Dev

在“ INSERT ON DUPLICATE KEY UPDATE”中,检测在指定插入值时是否使用默认值

来自分类Dev

MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

来自分类Dev

为什么在INSERT ... ON DUPLICATE KEY UPDATE上为MySQL中的键“ PRIMARY”给出重复的条目“ x”?

来自分类Dev

不能在 VB.NET 中使用“INSERT INTO table VALUES() ON DUPLICATE KEY UPDATE”

来自分类Dev

INSERT INTO... ON DUPLICATE KEY UPDATE 不更新 PHP 和 mySQL 中的重复值

来自分类Dev

ON DUPLICATE KEY UPDATE错误响应

来自分类Dev

php ON DUPLICATE KEY UPDATE 还说 1062: Duplicate entry for key 'PRIMARY'

来自分类Dev

INSERT ... ON DUPLICATE KEY语句的任何错误

来自分类Dev

如果不能忽略由MySQL INSERT ... ON DUPLICATE KEY UPDATE引起的auto_increment差距怎么办?

来自分类Dev

在执行原始INSERT ... ON DUPLICATE KEY UPDATE时,如何在Laravel 5.1中强制进行时间戳更新?

来自分类Dev

在SQLITE Android中模拟DUPLICATE KEY UPDATE

来自分类Dev

MySQL DUPLICATE KEY UPDATE + SUM函数

来自分类Dev

ON DUPLICATE KEY UPDATE用新值更新

来自分类Dev

MySQL UPDATE ON DUPLICATE KEY仅插入

来自分类Dev

使用ON DUPLICATE KEY UPDATE从SELECT插入

来自分类Dev

ON DUPLICATE KEY UPDATE 콜백-MySQL

来自分类Dev

ON DUPLICATE KEY UPDATE回调-MySQL

来自分类Dev

仅更新ON DUPLICATE KEY UPDATE的更改值

Related 相关文章

  1. 1

    INSERT ... ON DUPLICATE KEY UPDATE不起作用

  2. 2

    将UPDATE转换为INSERT INTO ON DUPLICATE KEY UPDATE语句

  3. 3

    INSERT INTO ... ON DUPLICATE KEY UPDATE似乎不起作用

  4. 4

    PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用

  5. 5

    MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

  6. 6

    MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

  7. 7

    如何在带有ON DUPLICATE KEY UPDATE的INSERT查询中使用WHERE子句?

  8. 8

    Java上的MySQL“ INSERT ... ON DUPLICATE KEY UPDATE”:如何区分插入/更新/ NoChange状态

  9. 9

    将内部联接和where子句添加到INSERT INTO ON DUPLICATE KEY UPDATE

  10. 10

    MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

  11. 11

    指定单个列时,MySQL批量INSERT .. ON DUPLICATE KEY UPDATE

  12. 12

    在“ INSERT ON DUPLICATE KEY UPDATE”中,检测在指定插入值时是否使用默认值

  13. 13

    MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

  14. 14

    为什么在INSERT ... ON DUPLICATE KEY UPDATE上为MySQL中的键“ PRIMARY”给出重复的条目“ x”?

  15. 15

    不能在 VB.NET 中使用“INSERT INTO table VALUES() ON DUPLICATE KEY UPDATE”

  16. 16

    INSERT INTO... ON DUPLICATE KEY UPDATE 不更新 PHP 和 mySQL 中的重复值

  17. 17

    ON DUPLICATE KEY UPDATE错误响应

  18. 18

    php ON DUPLICATE KEY UPDATE 还说 1062: Duplicate entry for key 'PRIMARY'

  19. 19

    INSERT ... ON DUPLICATE KEY语句的任何错误

  20. 20

    如果不能忽略由MySQL INSERT ... ON DUPLICATE KEY UPDATE引起的auto_increment差距怎么办?

  21. 21

    在执行原始INSERT ... ON DUPLICATE KEY UPDATE时,如何在Laravel 5.1中强制进行时间戳更新?

  22. 22

    在SQLITE Android中模拟DUPLICATE KEY UPDATE

  23. 23

    MySQL DUPLICATE KEY UPDATE + SUM函数

  24. 24

    ON DUPLICATE KEY UPDATE用新值更新

  25. 25

    MySQL UPDATE ON DUPLICATE KEY仅插入

  26. 26

    使用ON DUPLICATE KEY UPDATE从SELECT插入

  27. 27

    ON DUPLICATE KEY UPDATE 콜백-MySQL

  28. 28

    ON DUPLICATE KEY UPDATE回调-MySQL

  29. 29

    仅更新ON DUPLICATE KEY UPDATE的更改值

热门标签

归档