I'm trying to create a dump file that only contains the data in my database. I would like it to create the data with the INSERT command. In reading the manual, (http://www.postgresql.org/docs/9.2/static/app-pgdump.html#PG-DUMP-EXAMPLES) i see that I can use either

  • --column-insert
  • --attribute-insert

It wasn't clear from the manual what the difference is. So I tried both and did a diff on the files. There are differences and I'm wondering why. Can someone tell me what the difference is between these two commands?

Here's the full command I'm running:

pg_dump -a --column-inserts -U postgres testdb > /tmp/test_data_as_inserts2.sql

and :

 pg_dump -a --attribute-inserts -U postgres testdb > /tmp/test_data_as_inserts.sql

Any tips would be appreciated. In the meantime, I'm going to dig in and see what's different between these two files... why certain records are included and others not.


1 Answer 1


They are the same. Check the documentation (where they are mentioned together):

Dump data as INSERT commands with explicit column names (INSERT INTO table (column, ...) VALUES ...). This will make restoration very slow; it is mainly useful for making dumps that can be loaded into non-PostgreSQL databases. However, since this option generates a separate command for each row, an error in reloading a row causes only that row to be lost rather than the entire table contents.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.