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

ON DUPLICATEKEYUPDATEでの自動インクリメントが多すぎます

    INSERT ... ON DUPLICTE KEY UPDATEのこの動作を回避する方法はないと思います。 。

    ただし、2つのステートメントを配置できます。1つはUPDATE および1つのINSERT 、1つのトランザクション

    START TRANSACTION ;
    
    UPDATE pages
    SET etc = 'randomness'
    WHERE name = 'bob' ;
    
    INSERT INTO pages (name, etc)
    SELECT 
          'bob' AS name
        , 'randomness' AS etc 
    FROM dual 
    WHERE NOT EXISTS
          ( SELECT *
            FROM pages p
            WHERE p.name = 'bob'
          ) ;
    
    COMMIT ;
    


    1. SQLServerのデータベース内のすべてのテーブルを切り捨てる-SQLServer/TSQLチュートリアルパート55

    2. Oracleパッケージが無効になる状況は何ですか?

    3. ProxySQL監査ログを理解する

    4. SQLServerを使用してLucene.Netを構成する