gpt4 book ai didi

php - 使用单个查询插入两个表

转载 作者:行者123 更新时间:2023-11-29 14:42:32 26 4
gpt4 key购买 nike

我正在使用 zend 框架开发一个 Web 应用程序,问题是结合 2 个 sql 查询以提高效率。我的表结构是这样的

>table message
id(int auto incr)
body(varchar)
time(datetime)

>table message_map
id(int auto incr)
message_id(forgain key from message table's id column)
sender(int ) comment 'user id of sender'
receiver(int) comment 'user id of receiver'

为了使代码正常工作,我首先将消息正文和时间插入到消息表中,然后使用最后插入的 ID,将消息发送者和接收者插入到 message_map 表中。现在我想做的是在单个查询中完成此任务,因为使用一个查询会更有效。有什么办法可以这样做吗?

最佳答案

不,没有。您一次只能插入一张表。

但我无法想象您需要插入如此多的消息以至于性能真的成为一个问题。即使使用这些单独的语句,任何数据库都可以轻松地每分钟插入数千条记录。

批量插入
当然,当在同一个表中插入多条记录时,那就是另一回事了。这在 MySQL 中确实是可能的,它会让你的查询速度更快。但是,如果您需要从所有这些记录中插入 insert_ids,则会给您带来麻烦。

如果是批量插入,mysql_insert_id() 返回最后一个插入语句中插入的第一个 id。所以你可以查询所有 >= 该 id 的 id。它应该为您提供刚刚插入的所有记录,尽管结果可能包含其他人在您的插入和这些 id 的以下查询之间插入的 id。

关于php - 使用单个查询插入两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702419/

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