.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "ALTER DOMAIN" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands" .SH NAME ALTER DOMAIN \- 改变一个域的定义 .SH SYNOPSIS .sp .nf ALTER DOMAIN \fIname\fR { SET DEFAULT \fIexpression\fR | DROP DEFAULT } ALTER DOMAIN \fIname\fR { SET | DROP } NOT NULL ALTER DOMAIN \fIname\fR ADD \fIdomain_constraint\fR ALTER DOMAIN \fIname\fR DROP CONSTRAINT \fIconstraint_name\fR [ RESTRICT | CASCADE ] ALTER DOMAIN \fIname\fR OWNER TO \fInew_owner\fR .sp .fi .SH "DESCRIPTION 描述" .PP \fBALTER DOMAIN\fR 修改一个现有域的定义。 它有几种子形式: .TP \fBSET/DROP DEFAULT\fR 这些形式设置或者删除一个域的缺省值。请注意缺省只适用于随后的 INSERT 命令;他们并不影响使用该域已经在表中的行。 .TP \fBSET/DROP NOT NULL\fR 这些形式改变一个域是否标记为允许 NULL 值或者是拒绝 NULL 值。 在使用域的字段包含非空的值的时候,你只可以 SET NOT NULL。 .TP \fBADD \fIdomain_constraint\fB\fR 这种形式向域中增加一种新的约束,使用的语法和 CREATE DOMAIN [\fBcreate_domain\fR(7)] 一样。这样做只有在所有使用域的字段满足新的约束的条件下才能成功。 .TP \fBDROP CONSTRAINT\fR 这种形式删除一个域上的约束。 .TP \fBOWNER\fR 这种形式把域的所有者改变为另外一个用户。 .PP 要使用 ALTER DOMAIN,你必须拥有该域;但是使用 ALTER DOMAIN OWNER 的时候你必须是数据库超级用户。 .PP .SH "PARAMETERS 参数" .PP .TP \fB\fIname\fB\fR 一个要修改的现有域的名字(可以有模式修饰)。 .TP \fB\fIdomain_constraint\fB\fR 域的新的域约束。 .TP \fB\fIconstraint_name\fB\fR 要删除的现有约束。 .TP \fBCASCADE\fR 自动删除依赖这个对象的约束。 .TP \fBRESTRICT\fR 如果有任何依赖对象,则拒绝删除约束。这是缺省行为。 .TP \fB\fInew_owner\fB\fR 域的新所有者的用户名。 .PP .SH "EXAMPLES 例子" .PP 给一个域增加一个 NOT NULL 约束: .sp .nf ALTER DOMAIN zipcode SET NOT NULL; .sp .fi 从一个域里删除一个 NOT NULL 约束: .sp .nf ALTER DOMAIN zipcode DROP NOT NULL; .sp .fi .PP 给一个域里增加一个检查约束: .sp .nf ALTER DOMAIN zipcode ADD CONSTRAINT zipchk CHECK (char_length(VALUE) = 5); .sp .fi .PP 从一个域里删除一个检查约束: .sp .nf ALTER DOMAIN zipcode DROP CONSTRAINT zipchk; .sp .fi .SH "COMPATIBILITY 兼容性" .PP \fBALTER DOMAIN\fR 语句与 SQL99 兼容,除 OWNER 变种之外,这个变种是 PostgreSQL 的扩展。 .SH "译者" .B Postgresql 中文网站 .B 何伟平 .SH "跋" .br 本页面中文版由中文 man 手册页计划提供。 .br 中文 man 手册页计划:\fBhttps://github.com/man-pages-zh/manpages-zh\fR