【发布时间】:2017-10-06 22:39:19
【问题描述】:
谁能解释一下 Postgres 中的 pg_type ?由于在 MySQL 和 SQLite 等其他数据库连接适配器中找不到类型,它提供的功能和特性是什么?
【问题讨论】:
谁能解释一下 Postgres 中的 pg_type ?由于在 MySQL 和 SQLite 等其他数据库连接适配器中找不到类型,它提供的功能和特性是什么?
【问题讨论】:
PostgreSQL 有一组丰富的native data types 可供用户使用。
用户可以使用CREATE TYPE 命令将新类型添加到 PostgreSQL,或者使用CREATE DOMAIN 添加新域。
另外,当您创建表或视图时,会自动创建相应的同名复合类型。
每个数据库可能有一组不同的定义类型。数据库中已知的所有类型和域的信息都存储在system catalog pg_type.
【讨论】:
postgres 目录表pg_type 包含有关数据库中所有可用数据类型的信息。这包括像bool 和text 这样的内置数据类型,像hstore 这样的扩展数据类型,以及使用CREATE TYPE 产生的自定义数据类型。
如果您有兴趣,可以在the postgres documentation for that table 中找到更多信息。对于数据库的大多数用途,您不需要访问pg_type,但它可能很有用。在这种情况下,ActiveRecord 会查询pg_type 以获取有关用户创建的表中每一列的类型的准确信息。
【讨论】: