gpt4 book ai didi

带有 ON DUPLICATE KEY UPDATE 的 MySQL 嵌入式 INSERT

转载 作者:行者123 更新时间:2023-11-29 01:00:41 24 4
gpt4 key购买 nike

我有两个表,'user' 和 'account' 具有 1:1 的关系。

account 有一个 fk user_id,account 有唯一的 account_id

我必须上传最多 50k 行的 csv,并且对于每一行:

  • 如果 account.account_number 是唯一的,则将数据作为新行插入(到帐户和用户中)
  • 如果 account.account_number 已经存在,则更新帐户表行
  • 如果 csv 中不存在 account.account_number,则删除帐户和用户行。

到目前为止,我正在处理帐户表,因为它有 account.account_number col 来检查唯一性,但是向该表添加新行依赖于已将新行中的 user_id 添加到用户表.

INSERT INTO account (account_number, trans_rate....etc) VALUES (multiple data sets),(...),(....) ON DUPLICATE KEY UPDATE ...etc

这样就可以处理账户表,根据需要进行更新/插入。但当然,user_id 列保留为 NULL,因为尚未创建用户记录。

我想知道我是否可以在上面的语句中嵌入新用户行的插入语句,但我不知道从哪里开始......而且一些谷歌搜索并没有让我相信它实际上是可能的因此远。

或者任何其他想法?..

我可以看到如何通过每行多个查询来执行此操作,但我担心如果我使用这么多单独的查询来执行数据导入将花费的时间。

最佳答案

将数据上传到“暂存表”——然后执行两次更新插入,第一个是用户表,第二个是帐户表——用于第二个的查询将是连接到用户表的暂存表,例如用户名或 SSN(无论用户的候选 key 是什么)。

关于带有 ON DUPLICATE KEY UPDATE 的 MySQL 嵌入式 INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3488937/

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