一般的なスクリプトの実行順序
データベーススキーマを構築する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文- 関数やプロシージャの作成。
この順序を守ることで、依存関係によるエラーを避け、スムーズにデータベーススキーマを構築することができる。
