2

最初に利用可能な ID を持つ行を安全に挿入できる必要があります。PRIMARY_KEY と AUTO_INCREMENT およびこれらすべてに関する多くの回答を読みましたが、これは別のものです。1 から 60000 までの固定 ID 範囲を持つデータベースを保持して作業できるようにする必要があります。MySQL でそれを行う方法はありますか? 最も近い「フリー」ID をチェックする独自の関数を作成することは、マルチユーザーの使用で競合が発生する可能性があるため、オプションではありません。

最良のシナリオでは、MySQL は何らかの形で PRIMARY_KEY と同じように機能しますが、キーを再利用します。

4

4 に答える 4

0

次のように試すことができます:

INSERT INTO tableName (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=(Select max(id)+1 from tableName);

詳細情報: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

また

テーブルから最高のIDを取得し、それをインクリメントして行を挿入します。

Select max(id) from tableName;

IDを取得します。1を追加してテーブルに挿入します。さらに、60000 未満であることを確認できます。

これが最良の答えではないことはわかっていますが、2番目の選択肢として検討できます。

于 2013-11-08T17:30:23.673 に答える