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

カスケード更新を行う方法は?

    Postgres(およびその他のRDBM)では、カスケード更新は外部キーにのみ適用されます。例:

    create table groups (
        group_id int primary key
    );
        
    create table users (
        user_id int primary key, 
        group_id int references groups on update cascade
    );
    
    insert into groups values (1);
    insert into users values (1, 1);
    update groups set group_id = 10 where group_id = 1;
    
    select * from users;
    
     user_id | group_id 
    ---------+----------
           1 |       10
    (1 row) 
    

    実際、他のオプションは必要ありません。外部キーではない列に対してこれを行う必要があると思われる場合は、モデルの設計が不十分であることを意味します(正規化 )。一方、外部キーの選択的なカスケード更新の可能性は、実際的な問題を解決するのではなく、一般的なルールに違反します。



    1. OCIEnvNlsCreate()が失敗しました。 phpでOracleデータベースに接続しようとすると

    2. postgresql 9.5:スペースに基づいて文字列を2つのフィールドに分割しようとしています

    3. PHP / mysqli:mysqli_stmt_bind_param()を使用してIPアドレスを挿入します

    4. 純粋なvbscriptを使用してmysql5.0データベースに接続しますか?