【问题标题】:Transfer existing data after database model changes (PostgreSQL)数据库模型更改后传输现有数据 (PostgreSQL)
【发布时间】:2012-02-14 10:22:36
【问题描述】:

我正在尝试从我的数据库中删除一个关联表。它包含引用表 a 和 b 的两列(a_id 和 b_id)。

这个表是不必要的,因为它实际上是一个 OneToMany 关系。所以我在表 b 中添加了列 a_id。

我的问题:如何将现有条目从 assoc_a_b 转移到 b.a_id?

SELECT DISTINCT b.id, a.id FROM table_a AS a
JOIN assoc_a_b AS assoc ON a.id = assoc.a_id
JOIN table_b AS b ON b.id = assoc.b_id;

此选择语句有效。它可以与 UPDATE 语句结合使用吗? UPDATE 语句看起来像:

UPDATE b SET a_id = a.id WHERE id = b.id;

使用上面 select 语句中的 a.id 和 b.id。

【问题讨论】:

    标签: postgresql select


    【解决方案1】:

    更新 b 设置 a_id = (SELECT assoc_a_b.a_id from assoc_a_b where assoc_a_b.b_id = b.id)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-19
      • 2015-12-18
      • 2017-08-24
      • 2013-07-02
      • 1970-01-01
      • 2021-08-20
      • 2017-04-28
      • 1970-01-01
      相关资源
      最近更新 更多