pg_dump 命令的 --column-insert 和 --attribute-insert 之间的区别

dot*_*dot 5 postgresql backup

背景:

我正在尝试创建一个仅包含数据库中的数据的转储文件。我希望它使用 INSERT 命令创建数据。在阅读手册时,(http://www.postgresql.org/docs/9.2/static/app-pgdump.html#PG-DUMP-EXAMPLES)我发现我可以使用

  • --列插入
  • --属性插入

从手册中并不清楚有什么区别。所以我尝试了两者并对文件进行了比较。存在差异,我想知道为什么。有人能告诉我这两个命令有什么区别吗?

这是我正在运行的完整命令:

pg_dump -a --column-inserts -U postgres testdb > /tmp/test_data_as_inserts2.sql
Run Code Online (Sandbox Code Playgroud)

和 :

 pg_dump -a --attribute-inserts -U postgres testdb > /tmp/test_data_as_inserts.sql
Run Code Online (Sandbox Code Playgroud)

任何提示将不胜感激。与此同时,我将深入研究这两个文件之间的区别……为什么某些记录被包含而另一些则不被包含。

谢谢。

小智 7

他们是一样的。检查文档(它们一起被提及):

--column-inserts
--attribute-inserts
将数据转储为具有显式列名称 ( INSERT INTO table (column, ...) VALUES ...) 的 INSERT 命令。这会让恢复变得非常缓慢;它主要用于制作可加载到非 PostgreSQL 数据库中的转储。但是,由于此选项为每一行生成一个单独的命令,因此重新加载行时发生错误只会导致该行丢失,而不是整个表内容丢失。