Hubert 'depesz' Lubaczewski:等待PostgreSQL 19 - 新的pg_get_*_ddl()函数

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

PostgreSQL 19引入了新的pg_get_*_ddl()函数,包括pg_get_database_ddl()、pg_get_role_ddl()和pg_get_tablespace_ddl(),用于生成重建数据库、角色和表空间的DDL语句。这些函数支持格式化输出和其他选项,返回的结果包含创建和修改语句,用户需具备相应权限才能调用。

🎯

关键要点

  • PostgreSQL 19引入了新的pg_get_*_ddl()函数,包括pg_get_database_ddl()、pg_get_role_ddl()和pg_get_tablespace_ddl()。

  • pg_get_database_ddl()函数用于生成重建数据库的DDL语句,支持格式化输出和其他选项,调用者需具备相应权限。

  • pg_get_role_ddl()函数用于生成重建角色的DDL语句,支持格式化输出和角色成员信息,密码信息不会包含在输出中。

  • pg_get_tablespace_ddl()函数用于生成重建表空间的DDL语句,支持格式化输出和所有者信息,调用者需具备相应权限。

  • 这些函数的返回结果包含创建和修改语句,用户可以通过选项自定义输出格式。

延伸问答

PostgreSQL 19中新增了哪些pg_get_*_ddl()函数?

PostgreSQL 19中新增了pg_get_database_ddl()、pg_get_role_ddl()和pg_get_tablespace_ddl()函数。

pg_get_database_ddl()函数的作用是什么?

pg_get_database_ddl()函数用于生成重建数据库的DDL语句,支持格式化输出和其他选项。

调用pg_get_role_ddl()函数需要什么权限?

调用pg_get_role_ddl()函数需要对pg_authid表具有SELECT权限。

pg_get_tablespace_ddl()函数返回什么内容?

pg_get_tablespace_ddl()函数返回重建表空间的DDL语句,包括创建和修改表空间的语句。

如何使用pg_get_database_ddl()函数生成格式化输出?

可以通过传递'pretty'选项为'true'来生成格式化输出,例如:select * from pg_get_database_ddl('depesz', 'pretty', 'true');

pg_get_role_ddl()函数是否包含密码信息?

pg_get_role_ddl()函数的输出中不会包含密码信息。

➡️

继续阅读