DROP SCHEMA¶
说明¶
删除一个模式。
参数¶
schema_name
要删除的schema名
RESTRICT|CASCADE
- RESTRICT当schema下还有对象时不能删除它们,提示用。
- CASCADE该schema下所有对象都将被删除。
默认为RESTRICT
注解
如果要删除的是用户同名SCHEMA,DROP SCHEMA并非真正删除一个schema,而是清空schema中的表、视图等对象。
如果删除的不是用户同名SCHEMA,将删除模式包含的所有对象以及SCHEMA本身,符合SQL标准。
只有模式的所有者和数据库管理员才可以删除模式.如果使用CASCADE删除模式,将删除模式包含的所有对象。
示例¶
示例1: 删除模式
-- 清理环境
DROP SCHEMA schm1 CASCADE;
-- 创建模式
CREATE SCHEMA schm1;
-- 创建表(指定模式)
CREATE TABLE schm1.tab1 (a INT);
INSERT INTO schm1.tab1 VALUES (100);
INSERT INTO schm1.tab1 VALUES (200);
INSERT INTO schm1.tab1 VALUES (300);
SELECT * FROM schm1.tab1 ORDER BY a;
A(int) |
------------
100 |
------------
200 |
------------
300 |
总数目:3
-- 删除模式
-- 模式下有其他对象(表 schm1.tab1),删除失败
DROP SCHEMA schm1;
ERROR, 对象依赖无法删除用DROP ... CASCADE删除, Cannot drop schema SCHM1 because other objects depend on it
Use DROP ... CASCADE to drop the dependent objects too
-- 强制删除模式
-- 模式下的对象一并被删除
DROP SCHEMA schm1 CASCADE;