DROP DATABASE
DROP DATABASE ステートメントにより、データベースを削除します。Master ユーザーのみがこのステートメントを発行できます。
構文
DROP DATABASE
[
IF EXISTS
]
データベース名
[
DELETE FILES
]
データベース名
::=
ユーザー定義名
備考
このステートメントを発行するには、Master ユーザーとしてデータベースにログオンしている必要があります。DROP DATABASE ステートメントを使用すると、セキュリティ設定で削除が許可されていれば、現在ログオンしているデータベースも含め、あらゆるデータベースを削除できます。以下の
セキュリティで保護されたデータベース
を参照してください。
DROP DATABASE は、defaultdb や tempdb などのシステム データベースを削除する場合には使用できません。選択し、セキュリティで許可されていれば、このステートメントを使用して最後のユーザー定義データベースを削除できます。
DROP DATABASE ステートメントは、ストアド プロシージャおよびユーザー定義関数内では使用できません。
IF EXISTS 式を指定すると、データベースが存在しない場合、ステートメントはエラーではなく成功を返すようになります。IF EXISTS は、それ以外のエラーを抑制しません。
セキュリティで保護されたデータベース
「データベース」セキュリティ モデルで保護されたデータベースは削除できません。以下の方法でセキュリティ保護されているデータベースは削除
できます
。
•
クラシック セキュリティ
•
混合セキュリティ
•
リレーショナル セキュリティ(Master パスワード)と、クラシック セキュリティまたは混合セキュリティの組み合わせ
詳細については、『
Advanced Operations Guide
』の
「
PSQL セキュリティ
」
を参照してください。
DELETE FILES
DELETE FILES 句は、データ辞書ファイル(DDF)を削除するためのものです。データ ファイルは削除されません。
DELETE FILES を省略した場合、DDF は物理記憶域に残りますが、データベース名は dbnames.cfg から削除されます。dbnames.cfg から名前が削除されると、そのデータベースはもうデータベース エンジンにとって存在しないことになります。DDF を保持しておくことによって、データベースの再作成を選択した場合にその実行が可能になります。
DDF を削除するとき、DDF は使用中であってはいけないことに注意してください。たとえば、PSQL Control Center を開いている場合に DELETE FILES 句を使用すると、"ファイルがロックされています" というエラーが返されます。PCC が開いている間は、DDF は使用中であると見なされ、削除されません。
例
次の例によって、データベース名 inventorydb は dbnames.cfg から削除されますが、データベースの DDF(およびデータ ファイル)は物理記憶域に保持されます。
DROP DATABASE inventorydb
============
次の例では、データベース名 HRUSBenefits とその DDF が削除されます。HRUSBenefits のデータ ファイルは保持されます。
DROP DATABASE HRUSBenefits DELETE FILES
関連項目
CREATE DATABASE