gpt4 book ai didi

如果未找到 MySQL 更新行 insert -Preference for update first

转载 作者:行者123 更新时间:2023-11-30 22:45:56 26 4
gpt4 key购买 nike

我已经看到了一些与此相关的问题,如下所示 MySQL “good” way to insert a row if not found, or update it if it is found

现在我有一个汇总表,每次发生销售时都会更新数量。因此,只有在第一次执行插入时才售出 1000 件商品,其余时间都会更新。我的理解是在 Insert on Duplicate Key Update 它尝试先插入,如果更新失败。所以所有999次插入都不成功

1) 是否有一种方法可以先检查更新,如果没有更新则插入单个语句?

2) 考虑到大多数情况下更新会成功,下面哪种方法是可取的

a) 使用 Insert on Duplicate Key Update b) 调用更新;如果没有行受影响调用插入

现在我正在使用第二个选项(b)。性能增益在这里非常重要,我也在测试第一个选项。完成后我会在这里发布结果

最佳答案

INSERT ON DUPLICATE KEY UPDATE 是要走的路。它不会执行完整插入或您如何放置它。
要使此语句起作用,表中必须有一个主键或唯一键,并且语句中必须涉及相应的列。
在决定是否必须执行插入或更新语句之前,将检查上述键。这通常非常快。

采用“先更新”的方法,您一无所获,只会变得更糟。无论如何都必须进行主键查找。在最坏的情况下,您不得不两次查找主键而浪费时间。首先是更新语句(这可能不是必需的),然后是插入语句。

关于如果未找到 MySQL 更新行 insert -Preference for update first,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29620667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com