功能描述
修改类型的参数。
语法格式
ALTER TYPE name action [, ... ]
ALTER TYPE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
ALTER TYPE name RENAME ATTRIBUTE attribute_name TO new_attribute_name [ CASCADE | RESTRICT ]
ALTER TYPE name RENAME TO new_name
ALTER TYPE name SET SCHEMA new_schema
ALTER TYPE name ADD VALUE [ IF NOT EXISTS ] new_enum_value [ { BEFORE | AFTER } neighbor_enum_value ]
ALTER TYPE name RENAME VALUE existing_enum_value TO new_enum_value
这里action 是以下之一:
ADD ATTRIBUTE attribute_name data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
DROP ATTRIBUTE [ IF EXISTS ] attribute_name [ CASCADE | RESTRICT ]
ALTER ATTRIBUTE attribute_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
参数说明
- name:需要修改的现有的类型的名字,可以被模式修饰;
- new_name:该类型的新名称;
- new_owner:新所有者的用户名;
- new_schema:该类型的新模式;
- attribute_name:拟增加、更改或删除的属性的名称;
- new_attribute_name:拟改名的属性的新名称;
- data_type:拟新增属性的数据类型,或是拟更改的属性的新类型名;
- new_enum_value:枚举类型新增加的标签值,需要被引号引用;
- neighbor_enum_value:一个已有枚举标签值,新值应该被增加在紧接着该枚举值之前或者之后的位置上;
- existing_enum_value:现有的要重命名的枚举值,需要被引号引用;
- CASCADE:自动级联更新需更新类型以及相关联的记录和继承它们的子表;
- RESTRICT:如果需联动更新类型是已更新类型的关联记录,则拒绝更新,这是默认选项;
注意事项
使用ALTER TYPE必须是该类型的所有者。
范例
ALTER TYPE compfoo RENAME TO g_compfoo;
ALTER TYPE
语法兼容
ALTER TYPE新增和删除是SQL属于SQL标准,其他参数是PostgreSQL 扩展。
相关语法
功能描述
修改数据库用户的属性。
语法格式
ALTER USER role_specification [ WITH ] option [ ... ]
其中 option 可以是:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT connlimit
| [ ENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'timestamp'
ALTER USER name RENAME TO new_name
ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL
其中 role_specification 可以是:
role_name
| CURRENT_USER
| SESSION_USER
注意事项
ALTER USER现在是 ALTER ROLE的一个别名。详见ALTER ROLE。
语法兼容