KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
im working on a simple function where it automatically updates something from a table. create or replace function total() returns void as $$ declare sum int; begin sum = (SELECT count(copy_id) FROM copies); update totalbooks set all_books = sum where num = 1; end; $$ language plpgsql; if i execute "select total();" it works perfectly fine so i made a function trigger so that it automatically updates: create or replace function total1() returns trigger as $$ begin perform (select total()); return null; end; $$ language plpgsql; but after i execute this: create trigger total2 after update on totalbooks for each row execute procedure total1(); it gives me an error message: ERROR: stack depth limit exceeded HINT: Increase the configuration parameter "max_stack_depth" (currently 3072kB), after ensuring the platform's stack depth limit is adequate. CONTEXT: SQL statement "SELECT (SELECT count(copy_id) FROM copies)" PL/pgSQL function total() line 5 at assignment SQL statement "SELECT (select total())" PL/pgSQL function total1() line 3 at PERFORM SQL statement "update totalbooks set all_books = sum where num = 1" PL/pgSQL function total() line 6 at SQL statement SQL statement "SELECT (select total())" PL/pgSQL function total1() line 3 at PERFORM SQL statement "update totalbooks set all_books = sum where num = 1" PL/pgSQL function total() line 6 at SQL statement SQL statement "SELECT (select total())" PL/pgSQL function total1() line 3 at PERFORM SQL statement "update totalbooks set all_books = sum where num = 1" PL/pgSQL function total() line 6 at SQL statement SQL statement "SELECT (select total())" PL/pgSQL function total1() line 3 at PERFORM SQL statement "update totalbooks set all_books = sum where num = 1" PL/pgSQL function total() line 6 at SQL statement SQL statement "SELECT (select total())" PL/pgSQL function total1()
Tags (comma-separated)
Save Edits
Cancel