假设我们定义了一个postgresql类型:
CREATE TYPE my_type AS ENUM('foo', 'bar');
是否有任何方法可以在创建后显示类型定义?
我希望“\d my_type”显示“ENUM('foo ',' bar ')”,但它说:
Did not find any relation named "my_type"
pg_type表似乎没有给予足够的信息。
假设我们定义了一个postgresql类型:
CREATE TYPE my_type AS ENUM('foo', 'bar');
是否有任何方法可以在创建后显示类型定义?
我希望“\d my_type”显示“ENUM('foo ',' bar ')”,但它说:
Did not find any relation named "my_type"
pg_type表似乎没有给予足够的信息。
5条答案
按热度按时间nr9pn0ug1#
看看这个
我认为这是一个简单得多的解决方案:)。
rsaldnfx2#
你要找的是\dT,但它没有以“CREATE”语句的形式给予它。对于域使用\dD。
ycl3bljg3#
The manual:
enum_range
(anyenum
)→anyarray
在有序数组中返回输入枚举类型的所有值。
要获取模式,请执行以下操作:
退货:
您还可以从转储文件中获取SQL
CREATE
语句。使用pg_dump --schema-only ...
从仅模式转储中最便宜。或者简单地使用pgAdmin。在
object browser
中选择对象,其创建脚本将显示在SQL pane
中。py49o6xq4#
棘手的部分是,简单地从这些视图中选择 *,结果中不会得到OID。
iszxjhcz5#
使用this post,我已经在PgAdmin和PgBackup中实现了模仿'CREATE TYPE'的目标
并在psql下使用此命令运行它,以仅获得SQL代码:
\t\a\g\a\t