SQL:将备份文件从复制格式转换为插入格式

标签 sql postgresql phppgadmin

我有一个 PostgreSQL 备份,使用 PHPPgadmin 使用 Export > Copy(而不是 Copy > SQL,这实际上是我需要的)。

文件包含这样的条目:

COPY tablename(id, field) FROM stdin;
...

如何将这个文件转换成SQL格式?

INSERT INTO tablename...

我想使用 Pgadmin 来使用执行 SQL 命令导入这个文件。

最佳答案

我不知道可以将“COPY”转换为“INSERT”语句的方法或工具。

但使用“pg_dump”命令行工具,您可以使用“INSERT”而不是“COPY”语句创建数据库转储文件。简单地使用“--column-inserts”参数(也许“--inserts”也适合你)。

编辑:

你可以做的是:

  1. 在本地机器上创建一个新的 postgres 数据库
  2. 将您的数据库转储文件导入到新创建的数据库中

    psql -U <dbuser> <database> < dump.sql
    
  3. 然后使用该数据库的“--column-inserts”创建一个 postgres 转储

    pg_dump --column-inserts -U <dbuser> <database> > dumpWithInserts.sql
    

关于SQL:将备份文件从复制格式转换为插入格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827072/

相关文章:

java - 调用hashmap映射

mysql - 仅使用 mysql 根据另一个表结果更新表列

postgresql - 每个客户数据库设计的模式注意事项是什么

sql - 插入 PostgreSQL

mysql - 在一条 MySQL 语句中运行多个查询来获取行数

sql - 使用来自另一个表的唯一值创建一个表

sql - 使用干净的数据重置特定表

postgresql - 在 Postgresql 中执行更新插入时,ON CONFLICT 子句中未使用部分索引

postgresql - 在不更改底层数据库的情况下更改列的 Phppgadmin View 顺序的任何方法

postgresql - OpenShift 上的 phpPgAdmin 无法从应用程序 URL 访问