📅  最后修改于: 2023-12-03 15:33:44.898000             🧑  作者: Mango
在 PostgreSQL 中,域是一种用于限制列的数据类型集合。它们定义了列可以包含的值的范围和类型。在本文中,我们将了解如何在 PostgreSQL 中创建域。
要创建一个新的域,请使用以下 CREATE DOMAIN
语句,并提供名称和数据类型:
CREATE DOMAIN domain_name AS data_type;
下面是一个示例,用于创建一个名为 grade
的新域,它只允许小于或等于 100 的整数值:
CREATE DOMAIN grade AS integer CHECK (value <= 100);
在这个例子中,CHECK
可以用来添加额外的约束条件。在这里,CHECK
语句限制了该域的值必须小于或等于 100。
当创建了一个域之后,它可以被用作表的一个列的类型。例如,下面是一个使用 grade
域的例子:
CREATE TABLE students (
id serial primary key,
name text not null,
grade grade not null
);
在这个例子中,列 grade
的类型被定义为 grade
域,这意味着它只允许包含 0 到 100 之间的整数值。
要修改域的定义,请使用以下 ALTER DOMAIN
语句:
ALTER DOMAIN domain_name ALTER [CONSTRAINT] constraint_name SET|DROP NOT NULL;
下面是一个示例,用于从 grade
域中删除 NOT NULL
约束:
ALTER DOMAIN grade ALTER CONSTRAINT grade_not_null DROP NOT NULL;
要删除域,请使用以下 DROP DOMAIN
语句:
DROP DOMAIN domain_name [CASCADE];
下面是一个示例,用于删除 grade
域:
DROP DOMAIN grade;
在这个例子中,CASCADE
告诉 PostgreSQL 删除关联的约束和默认值等。
通过使用域,可以在 PostgreSQL 中轻松地限制列的数据类型和范围。此外,还可以添加约束条件并对定义进行修改。