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

データベースフィールドを上書きする代わりに追加する(MySQL UPDATE関数)

    INSERT ... ON DUPLICATE KEY UPDATEを使用してみてください

    ON DUPLICATE KEY UPDATEを指定し、UNIQUEインデックスまたはPRIMARY KEYに重複値を引き起こす行が挿入された場合、MySQLは古い行のUPDATEを実行します。

    たとえば、列aがUNIQUEとして宣言され、値1が含まれている場合、次の2つのステートメントは同様の効果があります。

    INSERT INTO table (a,b,c) VALUES (1,2,3)
      ON DUPLICATE KEY UPDATE c=c+1;
    
    UPDATE table SET c=c+1 WHERE a=1;
    

    (aが自動インクリメント列であるテーブルの場合、効果は同じではありません。自動インクリメント列の場合、INSERT ステートメントは自動インクリメント値を増やしますが、UPDATE しません。)

    ON DUPLICATE KEY UPDATE句には、コンマで区切って複数の列割り当てを含めることができます。

    ON DUPLICATE KEY UPDATEを使用すると、行ごとの影響を受ける行の値は、行が新しい行として挿入された場合は1、既存の行が更新された場合は2になります。

    これがお役に立てば幸いです。




    1. SQLServerの日時とタイムスタンプの違いは?

    2. MySQL、空の値に相当するものを合体させますか?

    3. SQL Serverでの1753年1月1日の重要性は何ですか?

    4. SpringBoot-再起動後にデータベースに再接続します