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

ポータブルSQLアップサート(挿入+更新)ソリューションが必要

    やや最新のデータベースを使用する、完全にデータベースに依存しない唯一のソリューションは、2つの操作でUpdateを呼び出してからInsertを呼び出すことです。一部のデータベースでは、1回の操作で複数のステートメントを送信できません。また、一部のデータベースでは、更新の影響を受ける行数が返されない可能性があるため、これに依存しません。

    Update MyTable
    Set Data = 'Data'
    Where KeyCol = 'key';
    

    (別の呼び出し)

    Insert Into MyTable(KeyCol, Data)
    Select 'key', 'Data'
    From ( Select 1 As Value ) As Z
    Where Not Exists    (
                        Select 1
                        From MyTable As T1
                        Where T1.KeyCol = 'key'
                        );
    


    1. MySQL接続タイムアウトの問題-HibernateとORMを使用したTomcat上のGrailsアプリケーション

    2. unsigned int / long型をEntityFrameworkで使用するにはどうすればよいですか?

    3. 別のテーブルのMAX()値によるMySQL結果セットの順序付け

    4. TOPおよびORDERBYSQLエラー