Postgresql nd的方法,但还没有一个完整的解决方案。从上面与其他人的讨论中,我发现我的设计要求要宽松得多,所以我选择了other的答案中描述的周期cron方法。我可能会在我的设计中使用你的方法,非常感谢! CREATE SEQUENCE cycle_seq maxva
nd的方法,但还没有一个完整的解决方案。从上面与其他人的讨论中,我发现我的设计要求要宽松得多,所以我选择了other的答案中描述的周期cron方法。我可能会在我的设计中使用你的方法,非常感谢!Postgresql nd的方法,但还没有一个完整的解决方案。从上面与其他人的讨论中,我发现我的设计要求要宽松得多,所以我选择了other的答案中描述的周期cron方法。我可能会在我的设计中使用你的方法,非常感谢! CREATE SEQUENCE cycle_seq maxva,postgresql,triggers,Postgresql,Triggers,nd的方法,但还没有一个完整的解决方案。从上面与其他人的讨论中,我发现我的设计要求要宽松得多,所以我选择了other的答案中描述的周期cron方法。我可能会在我的设计中使用你的方法,非常感谢! CREATE SEQUENCE cycle_seq maxvalue 100 cycle; CREATE TABLE tst(val1 int, val2 int, RN int); CREATE FUNCTION cycling_insert(_val1 int, _val2 int) returns
CREATE SEQUENCE cycle_seq maxvalue 100 cycle;
CREATE TABLE tst(val1 int, val2 int, RN int);
CREATE FUNCTION cycling_insert(_val1 int, _val2 int) returns void AS
$$
declare
_rn int:=nextval('cycle_seq');
begin
UPDATE tst SET val1=_val1,val2=_val2 WHERE RN=_rn;
IF NOT FOUND THEN
INSERT INTO tst VALUES(_val1,_val2,_rn);
END IF;
END $$ language plpgsql;
create function trim_tbl() returns trigger as $$
begin
delete from tbl
where id in (select id from tbl order by id desc offset 100);
return null;
end;
$$ language plpgsql;
create trigger trim_tbl after insert on tbl
for each row execute procedure trim_tbl();