表1:
parent_id string_id
5001 a
8759 b
3957 c
字符串\u id是表1的主键。父项id有一个唯一的约束。
表2:
child_id parent_id string_id
1 5001 a
2 8759 b
3 3957 c
child\u id是表2的主键。字符串\u id是表1的外键。
当我将新行填充到表2中时,我不想通过加入/合并表1在查询中插入父级\u id。
INSERT INTO table_2 (string_id)
VALUES ('a'),
('b'),
('c')
有没有人能给我一些建议,sql是否可以通过使用内置关系(例如约束、外键、级联)自动填充父级id?如果加入是唯一的方法,你能告诉我这样我就可以停止调查了吗?
基本上,我想知道解决这个问题最优雅的方法是什么。我可以使用join和insert,但我认为对于这样一个简单的功能来说,这是一个丑陋的查询。
谢谢您。
1条答案
按热度按时间vxf3dgd41#
这太长了,不能发表评论。
存储带有外键约束的表的目的是不需要复制数据。然后,sql提供
JOIN
用于查找值。我强烈建议你
JOIN
查找parent_id
当你需要的时候。如果愿意,可以编写一次查询并使用JOIN
--然后任何使用视图的人都会有parent_id
.