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

MySQL INSERT .... ONDUPLICATEUPDATE-自動インクリメントに1つ追加します

    INSERT ... ON DUPLICATE KEY UPDATE InnoDBのAUTO_INCREMENTの目的では、「混合モード挿入」として説明されています 取り扱い。混合モードの挿入は、基本的に最大の挿入です。 必要なAUTO_INCREMENTの数 値はわかっていますが、実際に必要になる量 そうではありません。

    MySQLドキュメント

    InnoDBを使用している場合、代替手段は次のとおりです。

    1. INSERT ... ON DUPLICATEKEYUPDATEを避けてください
    2. innodb_autoinc_lock_mode 0へのパラメータ 、「従来の」自動インクリメントロックモードの場合。これにより、すべての INSERTが保証されます。 ステートメントは、 AUTO_INCREMENTに連続した値を割り当てます 列。ただし、これはステートメント中にロックすることで実現されるため、この設定に関連してパフォーマンスが低下します。
    3. (推奨) AUTO_INCREMENTのギャップを無視します 列。

    注: AUTO_INCREMENT この動作を示さないMyISAMでは、処理がまったく異なります。



    1. PHPMySQLが接続タイムアウトを設定

    2. PostgreSQLの間隔値「2日」を連結する方法

    3. PHP経由でPostgresに接続できませんが、コマンドラインと別のマシンのPgAdminから接続できます

    4. 複数の列を変更するMySQLの更新は非アトミックですか?