簡體   English   中英

批量更新一對多關系欄2.3.5一個sql語句?

[英]updating in batch one to many relationship rails 2.3.5 one sql statement?

假設用戶有多個帳戶,因此user_id在帳戶表中。 如果我想更新所有用戶帳戶,並在1個sql調用中將它們分配給另一個用戶,是否有“方法”來做到這一點? (不執行executeSQL)

因此Joel有1000個帳戶,Fred沒有帳戶,Joel希望將Fred的所有帳戶提供給我,通常我可以遍歷joels帳戶並將其分配給fred用戶,但這將導致1000次sql調用。

fred.accounts += joel.accounts

這將立即將所有帳戶從joel移出,並將它們添加到fred擁有的任何現有帳戶中。 “立即”是指SQL立即執行更新-您無需另外保存要移動的記錄。

如果fred沒有帳戶,那也很好,它仍然可以正常工作-它將joel的帳戶簡單地添加到fred的空帳戶列表中。

這適用於“一對多”和“多對多”關系。

在一對多情況下,我通過更改joel先前擁有的所有帳戶的accounts表上的user_id字段來執行此操作。

在許多一對多的情況(其中賬戶可以由多個用戶共同擁有),這似乎只是改變user_id上連接表(大概叫場accounts_users )為所有帳戶joel與零個或多個共同擁有其他用戶。 這實際上將取代 joelfred共同擁有的任何帳戶。 帳戶上的所有其他共同所有者似乎都沒有受到影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM