繁体   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