【问题标题】:Automatically populate SQL column based on foreign key constraint根据外键约束自动填充 SQL 列
【发布时间】:2020-07-03 19:19:07
【问题描述】:

表 1:

parent_id string_id
5001      a
8759      b
3957      c

string_id 是表 1 的主键。 parent_id 有一个 UNIQUE 约束。

表 2:

child_id parent_id string_id
1        5001      a
2        8759      b
3        3957      c

child_id 是表 2 的主键。 string_id 是表 1 的外键。

当我将新行填充到表 2 中时,我确实希望通过 加入/合并表 1 在我的查询中插入 parent_id。

INSERT INTO table_2 (string_id)
VALUES ('a'),
       ('b'),
       ('c')

谁能给我建议 SQL 是否可以通过使用内置关系(例如约束、外键、级联)自动填充 parent_id?如果加入是唯一的方法,您能否也让我知道,以便我停止调查?

基本上,我想知道解决这个问题的最优雅的方法是什么。我可以将 join 与 INSERT 一起使用,但我认为对于如此简单的功能来说这是一个丑陋的查询。

谢谢。

【问题讨论】:

    标签: sql postgresql psycopg2


    【解决方案1】:

    存储带有外键约束的表的目的是使数据不需要重复。然后 SQL 提供 JOIN 用于查找值。

    我强烈建议您在需要时使用JOIN 来查找parent_id。如果您愿意,您可以编写一次查询并使用JOIN -- 然后任何使用该视图的人都将拥有parent_id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-30
      • 2022-09-30
      • 2017-11-04
      • 1970-01-01
      • 2013-04-10
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多