我知道FOR EACH STATEMENT
当我执行一个UPDATE t ...
.
现在,什么时候用t
定义FOREIGN KEY ... REFERENCES a ... ON UPDATE CASCADE
,我更新 N 行a
,这会导致触发器被调用一次还是 N 次?
换句话说,对由 FK 约束级联的表的更改更像是单个UPDATE
,还是更像是一系列UPDATE
s?
我有一个表继承设置,可以像这样简化:
CREATE TABLE p (
id BIGSERIAL PRIMARY KEY,
type_id BIGINT,
approved BOOLEAN
);
CREATE INDEX ON p(approved);
CREATE TABLE a (
a_field VARCHAR,
PRIMARY KEY (id),
CHECK(type_id = 1::BIGINT)
) INHERITS (p);
CREATE TABLE b (
b_field INT,
PRIMARY KEY (id),
CHECK(type_id = 2::BIGINT)
) INHERITS (p);
CREATE INDEX ON b(approved);
CREATE TABLE c (
c_field NUMERIC,
PRIMARY KEY (id)
-- this table is missing the check constraint (for no good reason)
) INHERITS (p);
Run Code Online (Sandbox Code Playgroud)
我现在有一个锁定 table 的长期运行事务a …