gpt4 book ai didi

MySQL批量插入依赖于另一个表

转载 作者:行者123 更新时间:2023-11-29 06:09:50 25 4
gpt4 key购买 nike

我有一个案例,我正在做两个查询:query1table1 上的批量 INSERT ... ON DUPLICATE KEY UPDATE .对于 query2,我想在 table2 上执行另一个批量 INSERT,其中包含一些应用程序数据以及使用从 query1 插入/更新的 ID 。我知道我可以通过中间查询来做到这一点,从 table1 中选择我需要的 ID,然后将它们与应用程序数据一起插入到 table2 中,但我真的想避免该查询的额外网络来回以及数据库开销。有什么方法可以在运行时从 query1 插入/更新 ID,或者做一些复杂但相对便宜的 INSERT ... SELECT FROMquery2 中避免这种情况?

据我所知,如果没有单独的查询,从 query1 返回的 ID 添加/修改是不可能的,而且我想不出一种方法来批处理 INSERT ... SELECT FROM,其中每行的插入值取决于所选值,但我很想被证明是错误的,或者被证明是解决其中任何一个问题的方法。

最佳答案

由于批量 INSERT,无法获取一组 ID。

您确实有一个选择是运行 SELECT 查询以获取 ID 并在第二批 INSERT 中使用它们。但这很麻烦。

另一种选择是将第二个批量INSERT运行到一个临时表中,我们称之为table3,然后使用INSERT INTO table2 ... SELECT FROM ... table1 JOIN table3 ...

对于类似的用例,我们最终发现这是最快的选择,前提是您正确索引了 table3。请注意,在这种情况下,您不需要在代码中循环的 SELECT,这很好。

关于MySQL批量插入依赖于另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958435/

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