有人可以解释ActiveRecord postgres pg_type的功能吗?
问题描述:
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb有人可以解释ActiveRecord postgres pg_type的功能吗?
任何人都可以解释有关pg_type在Postgres?由于我在其他数据库连接适配器(如MySQL和SQLite)中找不到类型,它提供的功能和功能是什么?
答
PostgreSQL有一套丰富的native data types可供用户使用。
用户可以使用CREATE TYPE命令或使用CREATE DOMAIN的新域向PostgreSQL添加新类型。
此外,当您创建表或视图时,将自动创建具有相同名称的相应组合类型。
每个数据库可能有一组不同的定义类型。数据库中已知的所有类型和域的信息存储在system catalog pg_type
.
答
postgres目录表pg_type
包含有关数据库中可用的所有数据类型的信息。其中包括内置数据类型,如bool
和text
,扩展数据类型如hstore
,以及使用CREATE TYPE
的结果的自定义数据类型。
the postgres documentation for that table如果您有兴趣,还有更多的信息可用。对于数据库的大多数用途,您不需要访问pg_type
,但它可能很有用。在这种情况下,ActiveRecord是查询pg_type
以获取关于用户创建表中每列的准确信息。