我有兩個Postgres的表:更新一個表的每行與相應的值
create table A(
id_A serial not null,
column_A varchar null;
...);
create table B(
id_B serial not null,
id_A int4 not null,
name varchar null,
keywords varchar null,
...);
表A
的元件被關聯到表B
的多個元素和表B
的一個元件被關聯到一個元件的表A
。
表B
列關鍵字是列B.name
和A.column_A
的值的串聯:
B.keywords := B.name || A.column_A
如何在表B
與觸發更新每個行的列B.keywords
如果A.column_A
值被更新?
換句話說,我想要做這樣的事情(僞代碼):
FOR EACH ROW current_row IN TABLE B
UPDATE B SET keywords = (SELECT B.name || A.column_A
FROM B INNER JOIN A ON B.id_A = A.id_A
WHERE B.id_B = current_row.id_B)
WHERE id_B = current_row.id_B;