3.27.1 DROP SCHEMAの形式と規則
(1) 機能
スキーマ定義で定義したスキーマを削除します。
(2) 使用権限
- スキーマの所有者
-
ユーザ自身のスキーマを削除できます。
- DBA権限を持つユーザ
-
他ユーザのスキーマを削除できます。
(4) オペランド
(a) 認可識別子〔WITH PROGRAM〕
- 認可識別子
-
スキーマの所有者の認可識別子を指定します。
- WITH PROGRAM
-
スキーマを削除するときに,指定したスキーマ内の実表,ビュー表,インデクス,抽象データ型,ルーチン,トリガ,及び順序数生成子を使用する,関数,手続き,及びトリガの有効な他ユーザのSQLオブジェクトを無効にしたいときに指定します。
WITH PROGRAMを省略した場合,スキーマ内の実表,ビュー表,インデクス,抽象データ型,手続き,トリガ,及び順序数生成子を使用する,関数,手続き,及びトリガの有効な他ユーザのSQLオブジェクトがあると,そのスキーマは削除できません。
(5) 共通規則
-
指定した認可識別子のスキーマ内のすべての実表,ビュー表(パブリックビューも含む),インデクス,コメント,アクセス権限,ルーチン(DROP SCHEMAで指定した認可識別子が定義したパブリック手続き,パブリック関数を含む),トリガ,抽象データ型,インデクス型,及び順序数生成子が削除されます。
-
WITH PROGRAMを指定しても,指定したスキーマ内の抽象データ型,関数,手続き,トリガ,及び順序数生成子を使用する,関数,手続き,トリガ,及び順序数生成子の有効な他ユーザのSQLオブジェクトがあると,そのスキーマは削除できません。
-
指定したスキーマ内の関数を使用する,他ユーザのビュー表,又は他ユーザが定義したパブリックビューがある場合,そのスキーマは削除できません。
-
スキーマ内の抽象データ型を使用する,他ユーザの表又はインデクスがある場合,そのスキーマは削除できません。
-
次のような場合,Java手続き中からDROP SCHEMAは実行できません。
-
実行中のSQLオブジェクトが無効になる場合,又は削除される場合
-
実行中のJava手続きが削除される場合
-
-
インナレプリカ機能を使用している場合のDROP SCHEMAの実行条件については,マニュアル「インナレプリカ機能 HiRDB Staticizer Option」を参照してください。
-
指定したスキーマ内に改竄防止表があり,かつその改竄防止表に行がある場合,そのスキーマは削除できません。
-
DBA権限を持つユーザは監査人のスキーマを削除できますが,監査人のスキーマ内に監査証跡表がある場合は監査人のスキーマを削除できません。
-
SQLセッション固有一時表を使用しているSQLセッション中で,使用中のSQLセッション固有一時表を含むスキーマは削除できません。
(6) 留意事項
-
DROP SCHEMAは,OLTP下のX/Openに従ったUAPから指定できません。
-
WITH PROGRAMを指定して関数,手続き,トリガ,及び順序数生成子の有効なSQLオブジェクトを無効にした場合,ディクショナリ表SQL_ROUTINE_RESOURCES中の無効となった関数,手続き,トリガ,及び順序数生成子の情報は削除されます。
-
WITH PROGRAMを指定して無効にした関数,手続き,トリガ,及び順序数生成子の有効なSQLオブジェクトを実行するためには,ALTER ROUTINE,ALTER PROCEDURE,又はALTER TRIGGERを実行して,関数,手続き,トリガ,及び順序数生成子の有効なSQLオブジェクトを再作成しておく必要があります。
-
認可識別子に指定したユーザが,他ユーザに付与したスキーマ操作権限はすべて削除されます。
(7) 使用例
ユーザ(認可識別子:USER1)が持っているスキーマを削除します。
DROP SCHEMA AUTHORIZATION USER1