DROP SEQUENCE¶
说明¶
删除一个序列
参数¶
seqname
要删除的序列名
RESTRICT|CASCADE
- RESTRICT默认选项,确保没有对象引用该序列时序列才可以被删除。
- CASCADE任何引用该序列的对象都将被删除,包括表中列的默认值,check条件和域的默认值。
默认为RESTRICT
注解
DROP SEQUENCE 命令显式从数据库中删除一个序列生成器
示例¶
示例1: 删除序列
-- 清理环境
DROP SEQUENCE seq1 CASCADE;
DROP TABLE tab1 CASCADE;
-- 创建序列
CREATE SEQUENCE seq1;
-- 创建表
CREATE TABLE tab1 (a INT, CHECK(a > NEXTVAL('seq1')));
-- 违反约束值,插入失败
INSERT INTO tab1 VALUES (-1);
ERROR, INSERT的数据违反了关系TAB1上的约束TAB1_CHECK
SELECT * FROM tab1 ORDER BY a;
A(int) |
总数目:0
-- 删除序列
-- 有约束依赖此序列,删除失败
DROP SEQUENCE seq1;
ERROR, 对象依赖无法删除用DROP ... CASCADE删除, Cannot drop sequence SEQ1 because other objects depend on it
Use DROP ... CASCADE to drop the dependent objects too
-- 强制删除序列
-- 依赖此序列的约束一并被删除
DROP SEQUENCE seq1 CASCADE;
-- 约束已被删除,插入成功
INSERT INTO tab1 VALUES(-1);
SELECT * FROM tab1 ORDER BY a;
A(int) |
------------
-1 |
总数目:1
-- 删除表
DROP TABLE tab1;