アプリ版:「スタンプのみでお礼する」機能のリリースについて

 お世話になります。

 今まで主キーの発行はシーケンスを使っていましたが、
シーケンスだと飛び番が発生するので、それ以外の方法を探しています。

 データ追加時に(select max(主キー) + 1)で発行した所、複数人数で使用するDBの為
稀にタイミングによっては同じ番号を拾ってきてしまい、「主キーが重複しています」のエラーが出てしまいます。
 

 主キーを安全に発行するのに、みなさん、どのような方法でされているのでしょうか?
 googleで検索をしてみましたが、意外と見つからないです。
 どなたかご教示いただけると助かります。

A 回答 (1件)

(1)maxキー取得及び+1して格納を、トランザクションの一番最後で行うなど、DBの排他区間を最短になるようにする。


(2)重複エラー時のリトライ処理を作りこむ

などは、必須になります。
    • good
    • 0
この回答へのお礼

有り難うございました。
 発番テーブル という言葉をよく聞きましたので、ものすごく簡単にシリアル管理が出来るものかと思っておりましたが、どうもそうではないようですね・・・
 やはりシーケンスを使った方が間違いないのでしょうか

お礼日時:2007/03/16 12:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!