4

これには良い習慣がありますか?

主キーが制限に達したときに問題を解決できたらいいのにと思います。これが私の特定の問題で起こることだからです。

やむを得ない場合は… どうすればいいですか?

これは mysql の質問です。Sybase sql には同じ問題がありますか?

4

4 に答える 4

3

なぜそのフィールドで限界に達するのでしょうか? 十分な大きさのデータ型で定義した場合、すべてのレコードを保持できるはずです。

unsigned bigint を使用した場合、最大 18,446,744,073,709,551,615 のレコードを持つことができます!

于 2009-11-03T12:08:02.800 に答える
1

多くの行があることがわかっている場合は、一般的に使用される int の代わりに bigint を使用できます。

mysql では、alter table ステートメントを使用して主キー列を簡単に調整し、範囲を調整できます。
自動インクリメントの主キーは常に正であるため、その列には unsigned プロパティも使用する必要があります。

制限に達したら、INSERT のON DUPLICATE KEY UPDATEステートメント内に入れるアルゴリズムを作成することができます。

于 2009-11-03T12:06:54.563 に答える
0

自動インクリメント列のデータ型によって異なります。
Unsign int は最大 4294967295 になります。

エラーを防ぎたい場合は、最後の自動インクリメント値を確認できます: LAST_INSERT_ID()

データ型の最大値に近づいている場合は、挿入を許可しないか、他の方法で処理してください。

それ以外は、bigint を使用することをお勧めします。そのため、ほとんどのシナリオで最大値に到達することはほとんどありません。

しかし、あなたに絶対確実な答えを与えることはできません:)

于 2009-11-03T12:05:21.430 に答える