sql >> データベース >  >> RDS >> PostgreSQL

カスケード削除制約を追加するにはどうすればよいですか?

    カスケードの削除時にon delete cascade 既存の外部キー制約に。最初に制約を削除してから、正しいバージョンを追加する必要があります。標準SQLでは、これを行う最も簡単な方法は

    です。
    • トランザクションを開始します
    • 外部キーをドロップします
    • カスケードの削除時にon delete cascade 、そして最後に
    • トランザクションをコミットする

    変更する外部キーごとに繰り返します。

    ただし、PostgreSQLには非標準の拡張機能があり、単一のSQLステートメントで複数の制約句を使用できます。例

    alter table public.scores
    drop constraint scores_gid_fkey,
    add constraint scores_gid_fkey
       foreign key (gid)
       references games(gid)
       on delete cascade;
    

    ドロップする外部キー制約の名前がわからない場合は、pgAdminIIIで検索できます(テーブル名をクリックしてDDLを確認するか、「制約」が表示されるまで階層を展開します)。または、情報スキーマをクエリできます。

    select *
    from information_schema.key_column_usage
    where position_in_unique_constraint is not null
    


    1. オブジェクトをjpaに保存する前にIDを知るにはどうすればよいですか?

    2. 2つのMySQLデータベースを比較する

    3. XAMPPでMariaDBをMySQLに変更するにはどうすればよいですか?

    4. SQLclおよびSQL*Plus(Oracle)で「選択されたX行」を削除する方法