On Wed, 4 Jan 2006 21:00:25 -0800, Benjamin Smith <[EMAIL PROTECTED]> wrote:
> Is there a way to put a limit on pg_dump, so that it doesn't dump ALL data, 
> but that matching a particular query? 
> 
> Something like: 
> 
> pg_dump -da --attribute-inserts -t "customers" \
> --matching-query="select * from customers where id=11"; 
> 
> I'd like to selectively dump information from a query, but using the output 
> format from pg_dump so that it can be used to create a (partial) database. 
> 
> Can this sort of thing be done? 

Not directly with pg_dump.  

You could create a table (create table customers_1 as select * from
customers where id=11) and dump that but remember to change the
tablename in the dump file or after loading it. You dont get any
pk/fk/indexes on the table definition.

You could also use copy to stdout/stdin.

eg dump
psql -d dbname -c "create temp table dump as select * from customers
where id=11; copy dump to stdout;" >dumpfile

eg restore
psql -d newdb -c "copy customers from stdin" <dumpfile

You might need to play around with supplying username/password.

klint.

+---------------------------------------+-----------------+
: Klint Gore                            : "Non rhyming    :
: EMail   : [EMAIL PROTECTED]           :  slang - the    :
: Snail   : A.B.R.I.                    :  possibilities  :
: Mail      University of New England   :  are useless"   :
:           Armidale NSW 2351 Australia :     L.J.J.      :
: Fax     : +61 2 6772 5376             :                 :
+---------------------------------------+-----------------+

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to