[英]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
與零個或多個共同擁有其他用戶。 這實際上將取代 joel
與fred
共同擁有的任何帳戶。 帳戶上的所有其他共同所有者似乎都沒有受到影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.