pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
ALTER DOMAIN — 更改一个域的定义
ALTER DOMAINname{ SET DEFAULTexpression| DROP DEFAULT } ALTER DOMAINname{ SET | DROP } NOT NULL ALTER DOMAINnameADDdomain_constraintALTER DOMAINnameDROP CONSTRAINTconstraint_name[ RESTRICT | CASCADE ] ALTER DOMAINnameOWNER TOnew_owner
ALTER DOMAIN更改一个现有域的定义。有以下几种子形式:
这些形式为域设置或移除默认值。注意,默认值只适用于后续的 INSERT命令;它们不会影响已存在于使用该域的表中的行。
这些形式更改域是被标记为允许 NULL 值还是拒绝 NULL 值。只有当使用该域的列中 不包含空值时,才能执行SET NOT NULL。
domain_constraint这种形式使用与 CREATE DOMAIN 相同的语法向域添加一个新约束。只有当所有使用该域的列都满足新约束时,这一操作才会成功。
这种形式删除域上的约束。
这种形式将域的拥有者更改为指定用户。
要使用 ALTER DOMAIN,你必须拥有该域;但 ALTER DOMAIN OWNER 例外,它只能由超级用户执行。
name要修改的现有域的名称(可以是模式限定的)。
domain_constraint该域的新约束。
constraint_name要删除的现有约束的名称。
自动删除依赖于该约束的对象。
如果存在任何依赖对象,则拒绝删除该约束。这是默认行为。
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 的扩展。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。