我有两个表,'user'和'account'具有1:1的关系。MySQL嵌入INSERT与ON DUPLICATE KEY UPDATE
帐户有FK USER_ID和帐户具有独特的ACCOUNT_ID
我必须采取一个CSV上传多达5万行,每一行之一:
- 插入数据作为新行(在考虑和用户)如果account.account_number是唯一
- 更新帐户表行,如果account.account_number已经存在
- 如果account.account_number犯规的CSV存在删除账号和用户的行。
到目前为止,我正在处理帐户表,因为这有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列留空,因为用户记录尚未创建。
我想知道是否可以在上面的语句中嵌入新用户行的插入语句,但我不知道从哪里开始......还有一点谷歌搜索没有让我相信它的实际可能迄今。
或者任何其他的想法?..
我可以看到如何,每行几个查询做到这一点,但我关心的数据导入是怎么回事,如果我有这么多的做花时间单独的查询。
您可以删除所有现有的行,然后根据CSV文件中的数据重新插入它们吗? – 2010-08-15 19:50:01
不幸的是,因为用户提交存储在帐户表中的额外信息。 – petesiss 2010-08-15 19:56:21