Postgresql

在相關子查詢方面需要幫助

  • September 5, 2019

我有兩個 PostgreSQL 表,每個表都包含一個名為date_of_incident.

它們每個都有一個名為的列incident_id,這就是表的關聯方式。

我想通過設置date_of_incident等於date_of_incident表 2 的相應行來更新表 1 的所有行,其中incident_id表 1 等於incident_id表 2。

任何人都可以提供樣品UPDATE嗎?我會很感激的。

incident_id在兩個表中都是唯一的,這就是表的關聯方式,儘管不是通過外鍵或約束(可悲)。我有額外的條件status = closed。唯一的複雜之處是表 1 有一個更新觸發功能,我需要檢查一下 SQL 將如何影響事物。

Postgres 允許在 UPDATE 語句中連接表:

update table_1
  set date_of_incident = t2.date_of_incident
from table_2 t2
where table_1.incident_id = t2.incident_id;

這假設incident_id在兩個表中都是唯一的。

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