Re: Error dropping non-existent tables

From: Baldeep Hira <baldeephira(at)gmail(dot)com>
To: Baldeep Hira <baldeephira(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Error dropping non-existent tables
Date: 2004-11-20 18:15:46
Message-ID: 6c1f039a041120101575a92e33@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks Bruno. A silly followup question =)

On Sat, 20 Nov 2004 10:51:13 -0600, Bruno Wolff III <bruno(at)wolff(dot)to> wrote:
> On Fri, Nov 19, 2004 at 21:38:33 -0800,
> Baldeep Hira <baldeephira(at)gmail(dot)com> wrote:
> >
> > I am able to drop tables in PostgreSQL, but the problem arises when
> > the table does not exist and I try to execute a "drop table" command.
>
> The simplest fix is to do the drop table outside of a transaction (so
> that the error in the drop doesn't break the rest of your script).
> If that won't work for you then you can write a custom function that
> looks in the system catalog to see if the table exists before trying
> the drop.
>
How do I move the "DROP TABLE" commands into a separate transaction? I
could move all the "DROP TABLE" commands into a separate sql-script
file, but then I never know which of the tables are existing in the
database, thus that script will break as well. When I execute a
bunch of SQL commands from a script file, do all of them form a single
transaction? Anyway, I can have multiple transactions from a single
script file?

Currently my sql-script file looks like this.

DROP TABLE table1 CASCADE;
DROP TABLE table2 CASCADE;
DROP TABLE table3 CASCADE;
DROP TABLE table4 CASCADE;

CREATE TABLE table1 (
name VARCHAR(255) NOT NULL,
id INTEGER NOT NULL
);

CREATE TABLE table2 (
id INTEGER NOT NULL,
type INTEGER NOT NULL
);

CREATE TABLE table3 (
id INTEGER NOT NULL,
p_id INTEGER NOT NULL,
CONSTRAINT fk_table3 FOREIGN KEY (id)
REFERENCES table2 (id)
);

CREATE TABLE table4 (
id INTEGER NOT NULL,
name VARCHAR(255) NOT NULL,
CONSTRAINT pk_table4 PRIMARY KEY (id),
CONSTRAINT u_table4 UNIQUE (name)
);

thanks,
Baldeep.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bruno Wolff III 2004-11-20 20:03:54 Re: Error dropping non-existent tables
Previous Message Tom Lane 2004-11-20 18:01:16 Re: infinite recursion detected in rules for relation "..."