Re: pg_dump and drop table if exists statement - Mailing list pgsql-admin

From Nicolas Thauvin
Subject Re: pg_dump and drop table if exists statement
Date
Msg-id 4DFB5560.4050804@dalibo.com
Whole thread Raw
In response to pg_dump and drop table if exists statement  (Ibrahim Harrani <ibrahim.harrani@gmail.com>)
List pgsql-admin

On 13/06/2011 09:56, Ibrahim Harrani wrote:
> Hi,
>
> I am using PostgreSQL 9.0 I would like to  dump some tables and all
> functions,triggers on the database.
> If I drop with pg_dump -c  parameter, it removes public schema as
> well.

With -c, the drop of the public schema does not cascade, so the objects
of the public schema that are not in the dump won't be deleted when
restoring.

> pg_dump -C parameter output has create table
> but I can't restore this output directly(Because the tables are
> already exist on the db)

-C creates the database and connect to it inside the dump, it is
different from -c.

> There is no problem with functions. They have already this feature.
>
> How can backup/restore tables with DROP TABLE IF EXISTS statement like
> in MySQL?  without dropping all database and create again?

Another way to do it is to use the custom format of pg_dump (-Fc), then
pg_restore can be used with -c to first drop the objects to be restored.

More, you can get pg_restore to echo the TOC with -l to a file, modify
this file to choose what to restore, then run pg_restore again with -L
/your/custom/list.

PS: be careful with the -f option of pg_restore, if you don't know the tool

--
Nicolas Thauvin
DBA
http://www.dalibo.com

pgsql-admin by date:

Previous
From: Andreas Berger
Date:
Subject: Re: alter table without an ACCESS EXCLUSIVE lock
Next
From: Andreas Pötzlberger
Date:
Subject: Re: alter table without an ACCESS EXCLUSIVE lock