| From: | Adam Tomjack <adamtj(at)adamtj(dot)org> | 
|---|---|
| To: | Shaun Clements <ShaunC(at)relyant(dot)co(dot)za> | 
| Cc: | postgresql <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: pl sql to check if table of table_name exists | 
| Date: | 2005-03-10 09:03:42 | 
| Message-ID: | 42300D6E.8020100@adamtj.org | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
Shaun Clements wrote:
> Hi
> 
> Hate to ask, but it isnt obvious to me from the documentation.
> How do I perform a query in pgplsql, to check it a table exists of a
> particular name.
> 
> Thanks in advance
> 
> Kind Regards,
> Shaun Clements
> 
-- A list of tables:
SELECT schemaname, tablename FROM pg_tables;
-- Returns true if a table exists:
SELECT count(*)>0 FROM pg_tables
   WHERE schemaname='...' AND tablename='...'
-- Here's an untested function:
CREATE OR REPLACE FUNCTION table_exists(TEXT, TEXT)
                   RETURNS BOOLEAN AS '
DECLARE
   r RECORD;
BEGIN
   SELECT INTO r count(*)>0 AS exists
     FROM pg_tables WHERE schemaname='$1' AND tablename='$2'
   RETURN r.exists;
END;
' LANGUAGE plpgsql STABLE;
Check out http://www.postgresql.org/docs/8.0/static/catalogs.html for 
more info.
Adam
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Shaun Clements | 2005-03-10 09:06:29 | Re: pl sql to check if table of table_name exists | 
| Previous Message | Shaun Clements | 2005-03-10 08:38:46 | Re: pl sql to check if table of table_name exists |