Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top


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, ( 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.


share|improve this question

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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