我已经和bar
一个多到多间foo
与foo_id
和bar_id
建模为表foo_bar
。转换一个多到许多关系到一个一对多PostgreSQL中
我现在想把它建模为一对多(我的数据允许)。
我已将foo_id
列添加到bar
但现在我想迁移我的数据。所以,我想
UPDATE bar SET foo_id = f where id = b;
每个f
和b
对从
SELECT foo_id AS f, bar_id AS b FROM foo_bar;
未来是否有可能做到这一点的SQL(特别的PostgreSQL 9.0)?
我知道如何在只有一个值的情况下在UPDATE中执行子SELECT,但在这种情况下难以做到。
应该最后一行fb.bar_id = b.id? –
@JamesTauber:不可以。模型中不应该有'id'。使用非描述性列名“id”是反模式。主键应该命名为'bar_id'。 –
足够公平,只是将它映射到我的问题的具体细节 –