📜  PostgreSQL – 创建域(1)

📅  最后修改于: 2023-12-03 15:33:44.898000             🧑  作者: Mango

PostgreSQL – 创建域

在 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 中轻松地限制列的数据类型和范围。此外,还可以添加约束条件并对定义进行修改。