基于外键约束自动填充SQL列

基于外键约束自动填充SQL列,sql,postgresql,psycopg2,Sql,Postgresql,Psycopg2,表1: parent_id string_id 5001 a 8759 b 3957 c string_id是表1的主键。 父id对其具有唯一的约束 表2: child_id parent_id string_id 1 5001 a 2 8759 b 3 3957 c child_id是表2的主键。 string_id是表1的外键 当我将新行填充到表2中时,我不想通过加入/合并表1在查询中插

表1:

parent_id string_id
5001      a
8759      b
3957      c
string_id是表1的主键。 父id对其具有唯一的约束

表2:

child_id parent_id string_id
1        5001      a
2        8759      b
3        3957      c
child_id是表2的主键。 string_id是表1的外键

当我将新行填充到表2中时,我不想通过加入/合并表1在查询中插入父id

INSERT INTO table_2 (string_id)
VALUES ('a'),
       ('b'),
       ('c')
谁能给我一些建议,SQL是否可以通过使用内置关系(例如约束、外键、级联)自动填充父id?如果加入是唯一的办法,你能告诉我这样我就可以停止调查了吗

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


谢谢。

评论太长了

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


我强烈建议您在需要时使用
JOIN
查找
parent\u id
。如果愿意,您可以编写一次查询并使用
连接
——然后使用该视图的任何人都将拥有
父id

谢谢。我将删除不必要的parent_id字段,以遵循SQL Physophy!