我如何将Postgres DDL转储到可粘贴到Google表格中的CSV中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何将Postgres DDL转储到可粘贴到Google表格中的CSV中?相关的知识,希望对你有一定的参考价值。

我正在尝试从Postgres创建输出,该输出将执行以下操作:

schema, table, column, type, attributes
public, table1, id, bigserial, not null primary key
public, table1, name, string, not null
...

只要输出使用列标题设置格式,如果不是CSV,我就可以了(我可以将普通查询导出为CSV就可以了。我无法正确查询周围的内容。

我最近来的如下。但是感觉就像我走错了路,并且有一种更简单/更干净的方式来做到这一点。我现在也没有在每个表列中得到一行(这是我想要的)。

SELECT table_schema || ',' || table_name || ',' || 
    string_agg(column_list.column_expr, ';'  || '') || 
    '' || ');'
FROM (
  SELECT table_schema, table_name, ' ' || column_name || ',' || data_type || 
       coalesce('(' || character_maximum_length || ')', ', ') || 
       case when is_nullable = 'YES' then '' else ' NOT NULL' end as column_expr
  FROM information_schema.columns
  WHERE table_schema = 'public' 
  ORDER BY ordinal_position) column_list
  group by table_schema,table_name;
答案

我想我对此有点考虑过。这是我最终使用的最终SQL:

以上是关于我如何将Postgres DDL转储到可粘贴到Google表格中的CSV中?的主要内容,如果未能解决你的问题,请参考以下文章

自动将 csv 转储到新的 Postgres 表中[重复]

无法在heroku上恢复postgres转储

如何仅提取 AWS RDS(Postgres 数据库)中的更改数据(CDC)并将更改数据转储到另一个 RDS postgres 实例?

Postgresql 使用不同于 postgres 的用户导入转储

如何仅使用 heroku 上的 postgres 转储来恢复我的数据库数据

使用 cgo 构建时如何调试/转储 Go 变量?