Skip site navigation (1) Skip section navigation (2)

Re: Checking for table existence

From: Roberto Mello <rmello(at)cc(dot)usu(dot)edu>
To: Julester <cubalibr(at)optonline(dot)net>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Checking for table existence
Date: 2001-09-18 00:12:29
Message-ID: 20010917181229.A9170@cc.usu.edu (view raw or flat)
Thread:
Lists: pgsql-sql
On Fri, Sep 14, 2001 at 06:58:29PM +0000, Julester wrote:
> Hi everyone.  In my old SQL Server days, I used a command such as "IF
> exists(select name from sys_objects where name = 'xyztable')"  to check if a
> table existed before creating it with a standard CREATE command.  I looked
> in the PostgreSQL documentation, but for the life of me, I can't find an
> equivalent.  I can view if the table exists by doing a select against the
> meta-data tables, but what about the IF statement ?  Any help would be
> greatly appreciated.  Thanks.

	You can have psql output its internal queries and that will give you
some insight:

roberto(at)brasileiro:~/documents/pictures$ psql -e foobar
Welcome to psql, the PostgreSQL interactive terminal.
...
foobar=# \d blah
********* QUERY *********
SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules
FROM pg_class WHERE relname='blah'
*************************

********* QUERY *********
SELECT a.attname, format_type(a.atttypid, a.atttypmod), a.attnotnull,
a.atthasdef, a.attnum
FROM pg_class c, pg_attribute a
WHERE c.relname = 'blah'
  AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum
*************************

********* QUERY *********
SELECT substring(d.adsrc for 128) FROM pg_attrdef d, pg_class c
WHERE c.relname = 'blah' AND c.oid = d.adrelid AND d.adnum = 1
*************************

                     Table "blah"
 Attribute |           Type           |   Modifier    
-----------+--------------------------+---------------
 something | timestamp with time zone | default 'now'
 name      | character(50)

	
	-Roberto
-- 
+------------| Roberto Mello - http://www.brasileiro.net |------------+
Computer Science, Utah State University  -    http://www.usu.edu
USU Free Software & GNU/Linux Club       -    http://fslc.usu.edu
Space Dynamics Lab, Developer            -    http://www.sdl.usu.edu
OpenACS - Enterprise free web toolkit    -    http://openacs.org
Blood is thicker than water, and much tastier.

In response to

pgsql-sql by date

Next:From: Lee HarrDate: 2001-09-18 00:37:46
Subject: Re: How to see the definition of an existing table?
Previous:From: PashaDate: 2001-09-17 18:49:12
Subject: Stored prosedure last run

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group