我有两个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;