在PostgreSQL中将多对多关系转换为一对多关系

在PostgreSQL中将多对多关系转换为一对多关系,第1张

概述我在foo和bar之间有多对多的模型作为foo_bar与foo_id和bar_id建模. 我现在想把它建模为一对多(我的数据允许). 我已经添加了一个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_ba 我在foo和bar之间有多对多的模型作为foo_bar与foo_ID和bar_ID建模.

我现在想把它建模为一对多(我的数据允许).

我已经添加了一个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,但在这种情况下难以理解.

UPDATE bar bSET    foo_ID = fb.foo_IDFROM   foo_bar fbWHERE  fb.bar_ID = b.bar_ID;

如果一个栏应该有多行(根据你的描述你不应该这样),一行将被多次更新,结果是任意的.

这种形式的查询通常比相关子查询执行得更好.

请注意,bar的主键实际上应该命名为bar_ID – 我在查询中使用该名称.

总结

以上是内存溢出为你收集整理的在PostgreSQL中将多对多关系转换为一对多关系全部内容,希望文章能够帮你解决在PostgreSQL中将多对多关系转换为一对多关系所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1181341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存