pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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



view thread (2+ messages)

Message-ID: <4DFB5560.4050804@dalibo.com>
Permalink:  ../4DFB5560.4050804@dalibo.com/
Also on:    postgresql.org/message-id/4DFB5560.4050804@dalibo.com

 · 

reply

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