![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
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. |
#2
| |||
| |||
|
|
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 |
#3
| |||
| |||
|
|
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) ); |
![]() |
| Thread Tools | |
| Display Modes | |
| |