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

複数のテーブルからデータを削除するにはどうすればよいですか?

    スキーマを制御できる場合は、スキーマでカスケードを使用します。削除

    記事から(あなたの例のために翻訳されたより適切な部分)

    CREATE TABLE point
    (
        pt_id integer PRIMARY KEY,
        evt_id integer REFERENCES event ON DELETE CASCADE
    )
    

    カスケードを設定している場合は、メインイベントテーブルから削除するだけで、他のすべてのテーブルが自動的にクリーンアップされます

    それ以外の場合は、最初にすべての参照を削除してから、メインテーブルを削除する必要があります。データの一貫性を保つために、これを1つのトランザクションで実行する必要があります

    BEGIN;
    DELETE FROM trace WHERE EXISTS 
        (SELECT 1 FROM point WHERE evt_id = 1139 AND trace.pt_id = point.pt_id);
    DELETE FROM point where evt_id = 1139;
    DELETE FROM magnitude where evt_id = 1139;
    DELETE FROM event where evt_id = 1139;
    COMMIT;
    


    1. Django Migrations:入門書

    2. Java / MySQL-別のクラスから接続にアクセスする方法は?

    3. データベース(モデル)をクエリするためのDjangoフォーム

    4. CREATE FUNCTIONエラーこの関数には、DETERMINISTIC、NO SQL、またはREADSSQLDATAがありません。