↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.

ALTER DOMAIN

ALTER DOMAIN — 更改一个域的定义

大纲

ALTER DOMAIN name
    { SET DEFAULT expression | DROP DEFAULT }
ALTER DOMAIN name
    { SET | DROP } NOT NULL
ALTER DOMAIN name
    ADD domain_constraint
ALTER DOMAIN name
    DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
ALTER DOMAIN name
    OWNER TO new_owner 
  

描述

ALTER DOMAIN更改一个现有域的定义。有以下几种子形式:

SET/DROP DEFAULT

这些形式为域设置或移除默认值。注意,默认值只适用于后续的 INSERT命令;它们不会影响已存在于使用该域的表中的行。

SET/DROP NOT NULL

这些形式更改域是被标记为允许 NULL 值还是拒绝 NULL 值。只有当使用该域的列中不包含空值时,才能执行SET NOT NULL。

ADD domain_constraint

这种形式使用与CREATE DOMAIN相同的语法向域添加一个新约束。只有当所有使用该域的列都满足新约束时,这一操作才会成功。

DROP CONSTRAINT

这种形式删除域上的约束。

OWNER

这种形式将域的拥有者更改为指定用户。

要使用 ALTER DOMAIN,你必须拥有该域;但 ALTER DOMAIN OWNER 例外,它只能由超级用户执行。

参数

name

要修改的现有域的名称(可以是模式限定的)。

domain_constraint

该域的新约束。

constraint_name

要删除的现有约束的名称。

CASCADE

自动删除依赖于该约束的对象。

RESTRICT

如果存在任何依赖对象,则拒绝删除该约束。这是默认行为。

new_owner

域的新拥有者的用户名。

示例

向域添加一个 NOT NULL 约束:

ALTER DOMAIN zipcode SET NOT NULL;

从域中移除一个 NOT NULL 约束:

ALTER DOMAIN zipcode DROP NOT NULL;

向域添加一个检查约束:

ALTER DOMAIN zipcode ADD CONSTRAINT zipchk CHECK (char_length(VALUE) = 5);

从域中移除一个检查约束:

ALTER DOMAIN zipcode DROP CONSTRAINT zipchk;

兼容性

ALTER DOMAIN 语句与 SQL99 兼容,但 OWNER 变体是 PostgreSQL 的扩展。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.