如何在PostgreSQL中将一个表中的值插入到另一个表中?

假设您有两个表:marks和student_info。下面分别给出两个示例

nameroll_noperc_marks
阿尼凯特1224
西迪4565
亚什2642
伊莎5687
nameroll_noagesex
阿尼凯特1226M
伊莎5625F
西迪4523F
亚什2625M

现在,假设您的经理在工作时查看了两个表并告诉您:“为什么我们有两个表?简化一切,将所有内容转移到一张桌子上!”

因此,您决定将perc_marks列添加到student_info表中。

ALTER TABLE student_info
ADD COLUMN perc_marks integer

现在,您将如何填充此列?您会为每列手动添加标记吗?这将使房间充满很多错误,并且非常耗时。相反,这是您可以做的-

UPDATE student_info
SET perc_marks =marks.perc_marksFROM marks
WHERE student_info.roll_no = marks.roll_no

在这里,roll_no用作两个表之间的公共字段,并更新student_info表中标记的值。请注意,这里的假设是在标记表中每个roll_no只有一个条目。如果在标记表中有多行具有相同的roll_no,它将使PostgreSQL感到困惑。通常,主键/外键用作公共字段,以避免这种混淆。

现在,如果查询student_info表(SELECT * from student_info),您将看到以下输出:

nameroll_noagesexperc_marks
阿尼凯特1226M24
伊莎5625F87
西迪4523F65
亚什2625M42

如您所见,marks表中的perc_marks的值已成功添加到student_info中。