SQL: how to find if a table exists? - Mailing list pgsql-general

From Lee Kindness
Subject SQL: how to find if a table exists?
Date
Msg-id 15740.45874.945784.646631@kelvin.csl.co.uk
Whole thread Raw
In response to SQL: how to find if a table exists?  (Jean-Christian Imbeault <totsubo2001@netscape.net>)
List pgsql-general
Look into the pg_class system table for a matching 'relame', the code
below can be installed as a plpgsql function to add a 'table_exists()'
function which returns boolean:

 CREATE OR REPLACE FUNCTION table_exists(NAME) RETURNS BOOLEAN AS '
    DECLARE
        tab ALIAS FOR $1;
        rec RECORD;
    BEGIN
        SELECT INTO rec *
            FROM  pg_class c
            WHERE c.relname = tab;
        IF NOT FOUND THEN
            RETURN false;
        ELSE
            RETURN true;
        END IF;
    END;
 ' LANGUAGE 'plpgsql';

This actually matches index names too, but works for my uses... This
system table is documented at:

 http://www.postgresql.org/idocs/index.php?catalog-pg-class.html

Lee.

Jean-Christian Imbeault writes:
 > I need to programmatically create a table if it does not already exists.
 >
 > Is there an SQL statement that will allow me to query a DB to see if a
 > table exists?

pgsql-general by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: Literal dash in regular expression brackets
Next
From: Bruno Wolff III
Date:
Subject: Re: Is there a way to query whether a table has been changed or not?