DROP SEQUENCE シーケンスを削除するSQL文

DROP SEQUENCEは順序(シーケンス)を削除するSQL文です。OracleやPostgreSQL、SQLServerで使えます。この記事では、DROP SEQUENCE文の使い方をご紹介します。

構文

DROP SEQUENCE [schema.]sequence

Oracle Database の DROP SEQUENCE 文で削除できる順序はひとつだけであり、複数の順序を指定することはできない。

schema
順序が存在するスキーマの名前を指定する。順序が自分のスキーマにある場合は、スキーマの名前を省略できる。
SQL> DROP SEQUENCE tsuka.empno;
sequence
削除する順序の名前を指定する。
SQL> DROP SEQUENCE empno;

権限

自分のスキーマ内にある順序を削除する場合は、とくに権限は必要ない。

削除する順序が自分のスキーマ内にない場合は、DROP ANY SEQUENCE システム権限が必要である。

PostgreSQL

PostgreSQL でも DROP SEQUENCE 文を使って順序を削除できる。Oracle Database の DROP SEQUENCE 文とは異なり、カンマで区切って複数の順序を指定できる。

DROP SEQUENCE foo, bar

削除しようとするシーケンスが存在しない場合、DROP SEQUENCE文はエラーになる。

DROP SEQUENCE文にIF EXISTSオプションを指定すると、削除しようとするシーケンスが存在しなくてもエラーにならない。

DROP SEQUENCE IF EXISTS foo, bar

削除しようとするシーケンスに依存するオブジェクトが存在する場合、DROP SEQUENCE文はエラーになる。

DROP SEQUENCE文にCASCADEオプションを指定すると、削除しようとするシーケンスに依存するオブジェクトも自動的に削除される。

DROP SEQUENCE foo, bar CASCADE

SQLServer

SQLServerでもDROP SEQUENCE文を使える。

DROP SEQUENCE foo, bar

削除しようとするシーケンスが存在しない場合、DROP SEQUENCE文はエラーになる。

DROP SEQUENCE文にIF EXISTSオプションを指定すると、削除しようとするシーケンスが存在しなくてもエラーにならない。

DROP SEQUENCE IF EXISTS foo, bar

関連SQL

CREATE SEQUENCE
シーケンスを作成する。
ALTER SEQUENCE
シーケンスを変更する。