さまざまな主キー値に対する一意の自動インクリメント キーの管理
背景
ユーザーは、主キー (例: id) 自動インクリメント機能と別のキー (例: uid) はユーザーを参照します。彼らは、個別の uid 値ごとに id の固有の自動インクリメント値を生成する方法を模索しています。
ソリューション
MySQL の MyISAM エンジン
- MyISAM がサポートしています複数列インデックスのセカンダリ列の自動インクリメント。
- これにより、id 値が、指定された uidauto_increment_column 値に 1 を加えたものとして生成されます。 > プレフィックス。
代替アプローチ
トリガー
テーブル ロックなしでは自動インクリメント動作を確実にエミュレートできません。- 同時挿入により
- id が重複する可能性があります 値はタイミングによる
追加の考慮事項
- 排他的テーブル ロック: 排他的テーブル ロックを取得すると、制御された挿入が可能になりますが、パフォーマンスに影響を与える可能性があります。
- 非トランザクション ソリューション: 最後に生成されたメッセージを追跡するトランザクション スコープ外の uid ごとの id は、実装と保守が難しい場合があります。
- 一意の値と連続する値: 内のギャップを適切に処理するようにしてください。ロールバック、挿入の失敗、またはエラーによる id 値
その他のデータベース エンジン
提供されるソリューションは、MySQL の MyISAM エンジンに固有です。- 他のデータベース エンジンは、この機能をネイティブにサポートしていない可能性があります。
-
以上がMySQL で一意のユーザーごとに一意の自動インクリメント ID を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。