3.12.1 DROP SCHEMA文の指定形式および規則
スキーマを削除します。
スキーマを削除した場合,表,インデクス,外部キーは,次のように影響を受けます。
-
削除対象のスキーマに定義されている表(実表およびビュー表)とインデクスも削除されます。
-
DROP SCHEMA文の実行によって削除される表に依存するビュー表(ほかのスキーマのビュー表)も削除されます(または無効化されます)。
-
DROP SCHEMA文の実行によって削除される表を被参照表とする外部キー(ほかのスキーマの外部キー)も削除されます。
- 〈この項の構成〉
(1) 指定形式
DROP SCHEMA文::=DROP SCHEMA 〔スキーマ名〕 〔削除動作〕 削除動作::={CASCADE|RESTRICT}
(2) 指定形式の説明
- ●スキーマ名
-
削除するスキーマのスキーマ名を指定します。スキーマ名を省略した場合,DROP SCHEMA文を実行したHADBユーザの認可識別子が仮定されます。
スキーマ名の指定規則については,「6.1.5 名前の修飾」の「(1) スキーマ名の指定形式」を参照してください。
なお,スキーマ名にALL,HADB,MASTER,およびPUBLICは指定できません。
- ●削除動作
-
削除動作::={CASCADE|RESTRICT}
削除対象のスキーマに表またはインデクスが定義されている場合に,スキーマを削除するかどうかを指定します。削除動作の各指定の説明を次の表に示します。
削除動作の指定
説明
ほかのスキーマのビュー表の扱い
ほかのスキーマの外部キーの扱い
削除動作の指定を省略した場合
削除対象のスキーマに表またはインデクスが定義されている場合でも,スキーマを削除します。この場合,スキーマに定義されている表およびインデクスも削除されます。
DROP SCHEMA文の実行によって削除される表に依存するビュー表(ほかのスキーマのビュー表)が無効化されます。
DROP SCHEMA文の実行によって削除される表を被参照表とする外部キー(ほかのスキーマの外部キー)も削除されます。
CASCADEを指定した場合
DROP SCHEMA文の実行によって削除される表に依存するビュー表(ほかのスキーマのビュー表)も削除されます。
RESTRICTを指定した場合
削除対象のスキーマに表またはインデクスが定義されている場合は,DROP SCHEMA文をエラーにします。
DROP SCHEMA文がエラーになるため,ほかのスキーマのビュー表に影響はありません。
DROP SCHEMA文がエラーになるため,ほかのスキーマの外部キーに影響はありません。
(3) 実行時に必要な権限
DROP SCHEMA文を実行する場合,CONNECT権限およびスキーマ定義権限が必要になります。
(4) 規則
-
自分(HADBサーバに接続中の認可識別子のHADBユーザ)が所有しているスキーマだけを削除できます。ほかのHADBユーザが所有しているスキーマは削除できません。例えば,認可識別子にADBUSER01を指定してadbsqlコマンドを実行した場合,DROP SCHEMA文で削除できるスキーマはADBUSER01のスキーマだけです。
-
スキーマを削除した場合,次のコスト情報も削除されます。
-
スキーマに定義されている表のコスト情報
-
スキーマに定義されているインデクスのコスト情報
-
-
スキーマを削除した場合,そのスキーマ内の表に対するアクセス権限を持っているすべてのHADBユーザから,そのアクセス権限が取り消されます。アクセス権限が取り消された場合,ビュー表や,参照制約に影響を及ぼすおそれがあります。詳細については,「3.17.2 アクセス権限の取り消し」の「(4) 規則」を参照してください。
(5) 例題
- 例題1
-
スキーマ名ADBUSER01のスキーマを削除します。
DROP SCHEMA "ADBUSER01" CASCADE
- 例題2
-
スキーマ名ADBUSER01のスキーマを削除します。ただし,スキーマに表またはインデクスが定義されている場合は,DROP SCHEMA文をエラーにします。
DROP SCHEMA "ADBUSER01" RESTRICT