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

ジャンクションテーブルで編集を実行する方法

    最初にすべての行を削除する必要はありません。

    適用されなくなった行のみを削除し、新しい行のみを挿入できます。または、適用されなくなった値を、適用される値で更新することもできます。

    だからこれから得るために

    Name    Role
    --
    John    Admin
    John    Member
    John    Superuser
    

    これに

    Name    Role
    --
    John    Member
    John    Junior
    

    適用されなくなったものは削除できます。 。 。

    delete from userinroles
    where Name = 'John' 
      and (Role = 'Admin' or Role = 'Superuser');
    

    適用されるものを挿入します。

    insert into userinroles (Name, Role)
    values ('John', 'Junior');
    

    または、値を新しい値で更新できます。

    delete from userinroles
    where Name = 'John' 
      and Role = 'Admin';
    

    続いて

    update userinroles
    set Role = 'Junior'
    where 'Name' = 'John' and Role = 'Superuser';
    

    あなたが言った

    それがトランザクションの目的です。単一のSQLトランザクション内の複数のステートメントは、すべてまたはまったくありません。すべて成功するか、変更が加えられません。



    1. java.lang.AbstractMethodError:oracle.jdbc.driver.OracleConnectionエラーが発生するのはなぜですか?

    2. 拡張機能mysqliがありません、phpmyadminが機能しません

    3. OracleストアドプロシージャのOUTパラメータ

    4. PostgreSQLでビュー/テーブルが依存するテーブルのリストを取得する