Postgresql

Postgres 9.3 從另一個具有關係的表中複製數據

  • October 20, 2015

嗨,我的數據庫中有兩個相關的表,即formsqa_forms

forms
->id
->name
-address
-phone
-calldatetime

然後`

qa_forms
->id
->forms_id
->name
->address
->phone

所以這qa_forms只是forms我已經擁有這兩個數據的副本,但是我忘記calldatetime在我的qa_forms. 所以我所做的就是在qa_forms其上添加新列calldatetime。正如預期的那樣,所有值都將為空,因為我之前已經有數據並且這是新添加的,我怎樣才能以最快的方式獲得它們各自calldatetime的數據forms?他們的關係是forms.id = qa_forms.forms_id

對此有任何疑問嗎?

我認為這樣的事情會起作用 - 如果不起作用,請告訴我

WITH forms_data AS (
 SELECT id, calldatetime FROM forms
) UPDATE qa_forms qf
 SET calldatetime = fd.calldatetime
 FROM forms_data fd
 WHERE qf.id = fd.id;

編輯(更好的版本,由 dezso 建議):

UPDATE qa_forms qf
SET calldatetime = f.calldatetime
FROM forms f
WHERE qf.id = f.id;

引用自:https://dba.stackexchange.com/questions/118605