Thread: Some questions about PLpgSql
Hi, all By using 'PLpgsql', is that possible to 1) check if a specific table exists? 2) check if an INSERT/UPDATE/ DELETE has done successfully? Is there some more documents or samples for PLpgsql except USER GUIDE and PostgreSQL Introduction & concept? THANK YOU JACK
Hello jack, To check if a table exists you could use: select tablename from pg_tables; For instance: dhcp=# select count(*) from pg_tables where tablename='dhcp_subnet';count ------- 1 (1 row) dhcp=# select count(*) from pg_tables where tablename='dhcp_subnetaa';count ------- 0 (1 row) To see the system tables use \dS The second I don't really know what you would like to see. Perhaps a trigger could do this after the insert/update/delete ? Best regards, Roelof > -----Original Message----- > From: datactrl [SMTP:quals@bigfoot.com] > Sent: 15 March 2001 12:04 > To: pgsql-sql@postgresql.org > Subject: [SQL] Some questions about PLpgSql > > Hi, all > > By using 'PLpgsql', is that possible to > > 1) check if a specific table exists? > 2) check if an INSERT/UPDATE/ DELETE has done successfully? > > > Is there some more documents or samples for PLpgsql except USER GUIDE and > PostgreSQL Introduction & concept? > > THANK YOU > > JACK > > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html
Jack, > 2) check if an INSERT/UPDATE/ DELETE has done successfully? This happens automatically, within a PL/pgSQL function. If the INSERT/UPDATE errors out, the function automatically halts. Actually, this kind of behaviour can be annoying the other way (sometimes one doesn't care about the error). Now, testing how many rows were inserted/updated/deleted ... that I'm not sure about. It would be nice to have a ROWS_AFFECTED returned from a data manipulation query in PL/pgSQL, but I don't believe that that has been implemented. > Is there some more documents or samples for PLpgsql except USER GUIDE and > PostgreSQL Introduction & concept? No. Some of us user-types are working on expanded documentation; until then, you'll just have to muddle through. -Josh Berkus -- ______AGLIO DATABASE SOLUTIONS___________________________ Josh Berkus Complete informationtechnology josh@agliodbs.com and data management solutions (415) 565-7293 for law firms, small businesses fax 621-2533 and non-profit organizations. San Francisco
Josh Berkus <josh@agliodbs.com> writes: > Now, testing how many rows were inserted/updated/deleted ... that I'm > not sure about. It would be nice to have a ROWS_AFFECTED returned from > a data manipulation query in PL/pgSQL, but I don't believe that that has > been implemented. It has as of 7.1 --- see GET DIAGNOSTICS foo = ROW_COUNT. regards, tom lane