如何将postgresql数据库中的数据导出为普通sql?

6gpjuf90  于 2023-02-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(407)

我正在构建一个由多个开发人员开发的API,我们需要有相同的数据库用于测试目的。我们使用UUID,所以如果我们都使用相同的UUID将是理想的。我似乎找不到一种方法来导出数据库内容作为普通的可执行SQL,最好使用插入语句。没有删除表,没有数据库的重建。
我希望最终结果类似于:

INSERT INTO public.bla_bla(
    id, bla_bla, bla_bla1, bla_bla2, bla_bla3, bla_bla4)
    VALUES (?, ?, ?, ?, ?, ?);
INSERT INTO public.bla_bla(
    id, bla_bla, bla_bla1, bla_bla2, bla_bla3, bla_bla4)
    VALUES (?, ?, ?, ?, ?, ?);
...

我使用pgAdmin 4作为用户界面。但也有Dbeaver。
我已尝试使用备份向导导出数据。

  • 在数据库上,-如果仅选择数据,则不生成结果。如果使用“节”类别滑块,则结果包括不需要的drop语句,并且没有可读的insert语句。
  • 在模式上-同上
    • 生成CSV文件,这不是理想的。

我试着按照这里的步骤操作,但它们没有产生我需要的结果。How to export Postgres schema/data to plain SQL in PgAdmin 4
在这一点上,我正在考虑只做手工。

twh00eeo

twh00eeo1#

使用pg_dump

pg_dump -Fp -d your_database -U your_db_user --column-inserts --data-only -f db_dump.sql

--data-only将跳过CREATE TABLE语句(或任何其他DDL)的创建。
如果需要,可以添加--rows-per-insert <nnnn>,以便只为多行创建一个INSERT语句。

juud5qan

juud5qan2#

您可以尝试pg_dump,并使用选项format plaintext和--column-inserts。
更多详情请阅读here

相关问题