我有兩個表,'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