aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/entry_limit_trigger.sql
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/entry_limit_trigger.sql')
-rw-r--r--scripts/entry_limit_trigger.sql27
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/entry_limit_trigger.sql b/scripts/entry_limit_trigger.sql
new file mode 100644
index 0000000..a3d4887
--- /dev/null
+++ b/scripts/entry_limit_trigger.sql
@@ -0,0 +1,27 @@
+create function remove_old_entries()
+ returns trigger
+ as $$
+begin
+ if(
+ select
+ COUNT(*)
+ from
+ table_name) > 10000 then
+ delete from table_name
+ where id in(
+ select
+ id
+ from
+ table_name
+ order by
+ id asc
+ limit 1000);
+ end if;
+ return null;
+end;
+$$
+language plpgsql;
+
+create trigger remove_old_entries_trigger
+ after insert on table_name for each row
+ execute procedure remove_old_entries();