From: Nicolas Thauvin <nicolas.thauvin@dalibo.com>
To: Ibrahim Harrani <ibrahim.harrani@gmail.com>
Cc: pgsql-admin@postgresql.org
Subject: Re: pg_dump and drop table if exists statement
Date: Fri, 17 Jun 2011 15:23:44 +0200
Message-ID: <4DFB5560.4050804@dalibo.com> (raw)
In-Reply-To: <BANLkTim45-uyjEQR5nL9kRBn0D0c_sJf7g@mail.gmail.com>
References: <BANLkTim45-uyjEQR5nL9kRBn0D0c_sJf7g@mail.gmail.com>
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: nicolas.thauvin@dalibo.com, ibrahim.harrani@gmail.com
Subject: Re: pg_dump and drop table if exists statement
In-Reply-To: <4DFB5560.4050804@dalibo.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox