我有一个视图表,它是两个单独的表(称为表_A和表_B)的联合。Postgres更新规则返回受影响的行数
我需要能够更新视图表中的一行,并且似乎通过“查看规则”来执行此操作的方式。视图表中的所有条目都有单独的ID,因此表_A中存在的表_A中的ID不会存在于表_B中。
我创建了以下规则:
CREATE OR REPLACE RULE view_update AS
ON UPDATE TO viewtable DO INSTEAD (UPDATE _A SET foo = false
WHERE old.id = _A.id;
UPDATE _B SET foo = false
WHERE old.id = _B.id;
);
如果我这样做对表的更新_B它返回受影响正确的行数(1)。但是,如果我更新表_A,它将返回(0)即使数据已更改也会受到影响的行。如果我更换更新的顺序,那么会发生同样的情况,但是相反。
我该如何解决这个问题,以便它返回正确的受影响行数。
谢谢。