这是场景:
create table a (
id serial primary key,
val text
);
create table b (
id serial primary key,
a_id integer references a(id)
);
create rule a_inserted as on insert to a do also insert into b (a_id) values (new.id);
我正在尝试在插入表时创建b
引用记录。但是我得到的是null,因为它是自动从序列中生成的。我也尝试了触发器插入,但是结果是一样的。有什么办法解决吗?a
a
new.id
AFTER
FOR EACH ROW
避免使用规则,因为它们会再次咬住您。
在每行运行的表a上使用after触发器。它看起来应该像这样(未经测试):
create function a_ins() returns trigger as $$
begin
insert into b (a_id) values (new.id);
return null;
end;
$$ language plpgsql;
create trigger a_ins after insert on a
for each row execute procedure a_ins();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句