pg入门14—pg中的domain是什么
在 PostgreSQL 中,domain
(域)是一种用户定义的数据类型,它基于已有的基本数据类型(如 INTEGER
、TEXT
等)进行扩展。domain
可以添加约束,从而增强数据的完整性和有效性。通过使用 domain
,你可以确保某些列的数据始终符合特定的要求。
特点
-
基于基本类型:
domain
是建立在已有数据类型之上的,继承了基本类型的特性。 -
约束:可以为
domain
定义额外的约束,如CHECK
约束,以限制允许的值范围。例如,可以限制一个域只能包含正数。 -
重用性:定义的
domain
可以在多个表中重复使用,提高代码的可读性和一致性。
创建 domain
的示例
以下是创建 domain
的基本示例:
CREATE DOMAIN positive_integer AS INTEGER CHECK (VALUE > 0);
在这个示例中,创建了一个名为 positive_integer
的域,它是基于 INTEGER
类型,并且只有值大于 0 的整数才能被接受。
使用 domain
创建一个表时,可以使用自定义的 domain
:
CREATE TABLE products ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, price positive_integer );
在这个表中,price
列的数据类型是 positive_integer
,因此任何插入到这列的值都必须是正整数。
注意事项
- 如果尝试插入不符合域约束的值,PostgreSQL 将会抛出错误。
domain
的使用可以使数据库设计更为清晰,同时提高数据完整性。