シーケンス を使用したい 。
2つの注意事項:
-
AUTO_INCREMENT
この記事で説明されている機能は非標準であり、別のデータベースに移動するときに移植性の問題が発生する可能性があります。 -
INSERT
の場合 が中止されても、シーケンスの数値はまだ消費されているため、シーケンスに穴が開いてしまう可能性があります。それが受け入れられない場合は、プライマリ(代理)キーに自動生成されたシーケンスを使用し、そのキーとは別のマップを「公式」シーケンス番号に追加して、そのテーブルのインデックスに一意性を適用します。
別の方法は、UNIQUE
を適用することです データベース内で、適切なTRANSACTION ISOLATION LEVEL
を使用します。 INSERT
の失敗を処理するアプリケーションロジックを追加します 。