一般的なスクリプトの実行順序
データベーススキーマを構築するSQLスクリプトでは、以下のような順序でコマンドを記述・実行するのが一般的。
DROP
文(開発環境などで再作成する場合)- 既存のテーブル、シーケンス、型などを削除する
DROP TABLE
,DROP SEQUENCE
,DROP TYPE
など。これにより、スクリプトを繰り返し実行してもクリーンな状態から開始できます。ただし、本番環境では注意が必要です。
- 既存のテーブル、シーケンス、型などを削除する
CREATE TYPE
文- カスタムデータ型(ENUMなど)の定義。
CREATE SEQUENCE
文- 明示的に作成するシーケンスの定義。
CREATE TABLE
文- テーブルの定義。この段階で、先に定義された型やシーケンスを参照できます。
ALTER TABLE
文(制約やインデックスの追加など)- テーブル作成後に追加する外部キー制約、ユニーク制約、インデックスなど。
CREATE INDEX
文- インデックスの作成。
CREATE VIEW
文- ビューの作成。
CREATE FUNCTION
/CREATE PROCEDURE
文- 関数やプロシージャの作成。
この順序を守ることで、依存関係によるエラーを避け、スムーズにデータベーススキーマを構築することができる。