- DROP OPERATOR CLASS
功能描述
移除一个操作符类。
语法格式
DROP OPERATOR CLASS [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]
参数说明
- IF EXISTS:如果该操作符类不存在,不报错仅提示;
- name:一个现有的操作符类的名称,可以被模式修饰;
- index_method:这个操作符类所用于的索引方法的名称;
- CASCADE:自动删除依赖于该操作符类的对象(例如索引),以及所有依赖于那些对象的对象;
- RESTRICT:如果有任何对象依赖于该操作符类,则拒绝删除,此为默认设置。
注意事项
只有操作符类的所有者可以删除该操作符类。
范例
移除 B-树操作符类widget_ops:
DROP OPERATOR CLASS widget_ops USING btree;
语法兼容
SQL标准中没有DROP OPERATOR CLASS语句。
相关语法
ALTER OPERATOR CLASS, CREATE OPERATOR CLASS, ALTER OPERATOR FAMILY, CREAT OPERATOR FAMILY, DROP OPERATOR FAMILY
- DROP OPERATOR FAMILY
功能描述
移除一个操作符族。
语法格式
DROP OPERATOR FAMILY [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]
参数说明
- IF EXISTS:如果该操作符族不存在,不报错仅提示;
- name:现有的操作符族的名称,可以被模式修饰;
- index_method:操作符族所属的索引的名称;
- CASCADE:自动删除依赖于该操作符族的对象,以及所有依赖于那些对象的对象;
- RESTRICT:如果有任何对象依赖于该操作符族,则拒绝删除,此为默认设置。
注意事项
只有操作符族的所有者可以删除该操作符族。
范例
移除 B-树操作符族float_ops:
DROP OPERATOR FAMILY float_ops USING btree;
语法兼容
SQL标准中没有DROP OPERATOR FAMILY语句。
相关语法
ALTER OPERATOR FAMILY, CREATE OPERATOR FAMILY, ALTER OPERATOR CLASS, CREATE OPERATOR CLASS, DROP OPERATOR CLASS
- DROP OWNED
功能描述
删除一个数据库角色所拥有的数据库对象。
语法格式
DROP OWNED BY { name | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]
参数说明
- name:将要删除的角色名;
- CASCADE:自动删除依赖于该角色的对象,以及所有依赖于那些对象的对象;
- RESTRICT:如果有任何对象依赖于该角色,则拒绝删除,此为默认设置。
注意事项
移除角色后,所有该角色在当前数据库里和共享对象(数据库,表空间)上的所有对象上的权限都将被撤销。
但是数据库、表空间将不会被移除。
语法兼容
DROP OWNED命令是一个PostgreSQL扩展。
相关语法
- DROP POLICY
功能描述
移除一个行级安全策略。
语法格式
DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]
参数说明
- IF EXISTS:如果该策略不存在,不报错仅提示;
- name:待删除的策略的名称;
- table_name:该策略所在的表的名称,可以被模式修饰;
- CASCADE | RESTRICT:无对象依赖于该行访问控制策略,该语句无意义。
注意事项
只有表的所有者可以移除该行级安全策略。
范例
DROP POLICY test_rls ON test_r;
DROP POLICY
语法兼容
DROP POLICY是一种PostgreSQL扩展。
相关语法
- DROP ROLE
功能描述
删除指定的角色。
语法格式
DROP ROLE [ IF EXISTS ] name [, ...]
参数说明
- IF EXISTS:如果该角色不存在,不报错仅提示;
- name:待移除的角色的名称。
注意事项
只有系统管理员可以移除管理员角色。要移除非管理员角色,需要具有CREATEROLE权限。
数据库占用中的角色无法移除。删除角色前,需要删除角色所拥有的所有对象及其权限。
范例
DROP ROLE gbasedbt;
DROP ROLE
语法兼容
SQL 标准定义了DROP ROLE,但是它只允许一次删除一个角色且与PostgreSQL的权限不同。
相关语法
CREATE ROLE, ALTER ROLE, SET ROLE
- DROP RULE
功能描述
移除一个重写规则。
语法格式
DROP RULE [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]
参数说明
- IF EXISTS:如果该规则不存在,不报错仅提示;
- name:待移除的规则的名称;
- table_name:规则适用的表或者视图的名称,可以被模式修饰;
- CASCADE:自动删除依赖于该规则的对象,以及所有依赖于那些对象的对象;
- RESTRICT:如果有任何对象依赖于该规则,则拒绝删除,此为默认设置。
范例
DROP RULE newrule ON mytable;
DROP RULE
语法兼容
DROP RULE是一个PostgreSQL语言扩展。
相关语法
- DROP SCHEMA
功能描述
移除一个模式。
语法格式
DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
参数说明
- IF EXISTS:如果该模式不存在,不报错仅提示;
- name:模式的名称;
- CASCADE:自动删除依赖于该模式的对象(表、函数等),以及所有依赖于那些对象的对象;
- RESTRICT:如果有任何对象依赖于该模式,则拒绝删除,此为默认设置。
注意事项
只有模式的所有者有权限执行DROP SCHEMA命令。
范例
DROP SCHEMA gbaseschema CASCADE;
DROP SCHEMA
语法兼容
DROP SCHEMA符合SQL标准,IF EXISTS是一个 PostgreSQL扩展。
相关语法
- DROP SEQUENCE
功能描述
移除一个序列。
语法格式
DROP SEQUENCE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
参数说明
- IF EXISTS:如果该序列不存在,不报错仅提示;
- name:序列的名称,可以被模式修饰;
- CASCADE:自动删除依赖于该序列的对象,以及所有依赖于那些对象的对象;
- RESTRICT:如果有任何对象依赖于该序列,则拒绝删除,此为默认设置。
注意事项
只有序列的所有者才能删除该序列。
范例
DROP SEQUENCE serial;
DROP SEQUENCE
语法兼容
DROP SEQUENCE符合SQL标准,只有IF EXISTS选项是一个PostgreSQL扩展。
相关语法
CREATE SEQUENCE, ALTER SEQUENCE
- DROP STATISTICS
功能描述
删除扩展统计。
语法格式
DROP STATISTICS [ IF EXISTS ] name [, ...]
参数说明
- IF EXISTS:如果该扩展统计不存在,不报错仅提示;
- name:待删除的统计对象名称,可以被模式修饰;
注意事项
只有统计对象的所有者、模式的所有者或者系统管理员可以删除统计对象。
范例
DROP STATISTICS IF EXISTS
accounting.users_uid_creation,
public.grants_user_role;
语法兼容
SQL标准中没有DROP STATISTICS命令。
相关语法
ALTER STATISTICS, CREATE STATISTICS
- DROP TABLE
功能描述
移除表。
语法格式
DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
参数说明
- IF EXISTS:如果该表不存在,不报错仅提示;
- name:待删除的表的名称,可以被模式修饰;
- CASCADE:自动删除依赖于该表的对象(例如视图),以及所有依赖于那些对象的对象;
- RESTRICT:如果有任何对象依赖于该表,则拒绝删除,此为默认设置。
注意事项
DROP TABLE会强制删除指定的表,删除表后,依赖该表的索引会被删除,而使用到该表的函数和存储过程将无法执行。删除分区表,会同时删除分区表中的所有分区。
范例
DROP TABLE t1;
DROP TABLE
语法兼容
这个命令符合SQL标准,不过该标准只允许每个命令删除一个表并且IF EXISTS选项是一个 PostgreSQL扩展。
相关语法