[英]Postgres Update Records in Loop
我有一個Employee
表,其中DEPTCODE
為空。
ID NAME AGE DEPTID DEPTCODE
---- ---------- ----- ---------- -------
1 Paul 32 2
2 Allen 25 1
像這樣的Department
表:
ID DEPTNAME DEPTCODE
---- ---------- -----
1 HR DEP-01
2 ADMIN DEP-02
如何更新DEPTCODE
在Employee
通過查詢表DEPTCODE
從Department
表?
我試過這個;
DO $$
BEGIN
FOR depart IN
SELECT * FROM schema."Department"
LOOP
Update table schema."Employee" set "DEPTCODE"=depart."DEPTCODE"
where "DEPTID"=depart."ID";
END LOOP;
END; $$
無需循環。 Postgres允許在UPDATE語句中連接兩個表:
update "Employee" e
set "DEPTCODE"=depart."DEPTCODE"
from "Department" depart
where e."DEPTID"=depart."ID";
但你不應該真的這樣做。 在相關表中存儲數據副本不是一個好的數據庫設計。 您始終可以通過連接兩個表來獲取該信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.