有人能解释一下ActiveRecord postgres pg_type的功能吗?

时间:2017-10-06 22:39:20

标签: postgresql activerecord

https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb

任何人都可以解释一下Postgres中的pg_type吗?由于我在其他数据库连接适配器(如MySQL和SQLite)中找不到类型,它提供的功能和功能是什么?

2 个答案:

答案 0 :(得分:2)

PostgreSQL为用户提供了丰富的native data types

用户可以使用CREATE TYPE命令向PostgreSQL添加新类型,或使用CREATE DOMAIN向新域添加新类型。

此外,在创建表或视图时,会自动创建具有相同名称的相应复合类型。

每个数据库可能有一组不同的已定义类型。数据库中已知的所有类型和域的信息存储在system catalog pg_type.

答案 1 :(得分:2)

postgres目录表pg_type包含有关数据库中可用的所有数据类型的信息。其中包括booltext等内置数据类型,hstore等扩展数据类型以及使用CREATE TYPE的结果的自定义数据类型。

如果您有兴趣,可以在the postgres documentation for that table中获得更多信息。对于数据库的大多数用途,您不需要访问pg_type,但它可能很有用。在这种情况下,ActiveRecord除其他外,查询pg_type以获取有关用户创建的表中每列类型的准确信息。