Postgresql nd的方法,但还没有一个完整的解决方案。从上面与其他人的讨论中,我发现我的设计要求要宽松得多,所以我选择了other的答案中描述的周期cron方法。我可能会在我的设计中使用你的方法,非常感谢! CREATE SEQUENCE cycle_seq maxva

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

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 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();