外部キー制約や、ビュー、トリガ、関数などを使ったテーブルが多数含まれるような複雑なデータベース構造を作成すると、ユーザはそれらのオブジェクト間の暗黙的な依存関係のネットワークも作成していることになります。外部キー制約を持つテーブルは、参照するテーブルに依存しています。データベース構造全体の整合性を保つため、PostgreSQLは、他のオブジェクトと依存関係にあるオブジェクトの削除を許可しません。項5.3.5で作成したproductsテーブルを削除しようとしても、ordersテーブルがこのテーブルに依存しているので、以下のようなエラーメッセージが現れます。too.エラーメッセージには役に立つヒントが含まれています。以下のようにすると、依存する全てのオブジェクトを1つずつ削除する手間を省けます。CASCADE;これで全ての依存オブジェクトが削除されます。CASCADEが何を行うかを知りたい場合は、CASCADEを指定せずにDROPを実行してNOTICEメッセージを読んでください)。PostgreSQLでは、全ての削除用コマンドにCASCADEを指定することができます。どのような依存関係が存在するかは、オブジェクトの種類によって異なります。CASCADEではなくRESTRICTと記述すると、他のオブジェクトが依存しているオブジェクトの削除を禁止するというデフォルトの振舞いを指定することもできます。標準SQLでは、RESTRICTまたはCASCADEのいずれかを指定する必要があります。実際にこの決まり通りのデータベースシステムはありませんが、デフォルトがRESTRICTであるか、CASCADEであるかは、システムによって異なります。PostgreSQLの7.3より前のバージョンにおける外部キー制約の依存関係とシリアル列の依存関係は、アップグレード処理において維持も作成もされません。その他の種類の依存関係は全て、7.3より前のデータベースからのアップグレード中に適切に作成されます。