DROP SEQUENCEは順序(シーケンス)を削除するSQL文です。OracleやPostgreSQL、SQLServerで使えます。この記事では、DROP SEQUENCE文の使い方をご紹介します。
DROP SEQUENCE [schema.]sequence
Oracle Database の DROP SEQUENCE 文で削除できる順序はひとつだけであり、複数の順序を指定することはできない。
SQL> DROP SEQUENCE tsuka.empno;
SQL> DROP SEQUENCE empno;
自分のスキーマ内にある順序を削除する場合は、とくに権限は必要ない。
削除する順序が自分のスキーマ内にない場合は、DROP ANY SEQUENCE システム権限が必要である。
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でもDROP SEQUENCE文を使える。
DROP SEQUENCE foo, bar
削除しようとするシーケンスが存在しない場合、DROP SEQUENCE文はエラーになる。
DROP SEQUENCE文にIF EXISTSオプションを指定すると、削除しようとするシーケンスが存在しなくてもエラーにならない。
DROP SEQUENCE IF EXISTS foo, bar