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


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

姓名学号百分比分数
Aniket1224
Siddhi4565
Yash2642
Isha5687


姓名学号年龄性别
Aniket1226
Isha5625
Siddhi4523
Yash2625

现在,假设您的工作经理查看这两个表后告诉您:“为什么我们要用两个表?简化一下,把所有东西都移到一个表里!”

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

ALTER TABLE student_info
ADD COLUMN perc_marks integer

现在,您将如何填充此列?您会手动为每一列添加分数吗?这样会留下很多出错的余地,而且非常耗时。相反,您可以这样做:

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

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

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

姓名学号年龄性别百分比分数
Aniket122624
Isha562587
Siddhi452365
Yash262542

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

更新于:2021年2月2日

2K+浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告