如何在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+瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.