データベースで整数カラムの自動インクリメントがmax_valueに達した場合、何が起こりますか?
2023-10-26 03:02:01
質問
私はデータベースアプリケーションを実装しており、データベースとしてJavaDBとMySQLの両方を使用する予定です。私のテーブルには、型として整数を持つIDカラムがあり、私はその値に対してデータベースのauto_increment-functionを使用します。
しかし、20億(または40億)以上の投稿があり、整数では足りなくなったらどうなるのでしょうか?整数がオーバーフローして続行されるのでしょうか、それとも処理可能な例外がスローされるのでしょうか?
確かにデータ型をlongに変更することはできますが、それが必要なときをどのように確認すればよいのでしょうか?また、IDカラムのデータ型としてlongを使用する場合、last_inserted_id()関数を取得する際に問題があると思います。
どのように解決するのですか?
ジム・マーティンのコメント §3.6.9. "AUTO_INCREMENTの使用" からのコメントです。
念のため申し上げますが、AUTO_INCREMENT フィールドは /DOES NOT WRAP/ です。フィールドサイズの制限に達すると、INSERT はエラーを発生させます。(Jeremy Coleによる)
MySQL 5.1.45 での簡単なテストでは、次のようなエラーが発生します。
エラー 1467 (hy000)。ストレージ エンジンから自動インクリメントの値を読み取ることに失敗しました。
挿入時にそのエラーをテストして、適切な対処をすることができます。
関連
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] データベース駆動型アプリケーションのユニットテストに最適な戦略とは?
-
[解決済み] 1対1の関係はどのようなときに使うべきですか?
-
[解決済み] データベースとファイルシステムストレージ
-
[解決済み] データベースで月額課金システムを設計するためのグッドプラクティス【終了しました
-
[解決済み] なぜデータベースは常に円柱で表現されるのですか?[クローズド]
-
[解決済み] 二相コミットはどのように最後の一秒の失敗を防ぐのか?
-
[解決済み] アイデンティファイとノンアイデンティファイの関係についてまだ混乱している
-
[解決済み] PostgreSQLの隠し味【終了しました
-
国や都市について [終了しました。]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 1対1の関係はどのようなときに使うべきですか?
-
[解決済み] なぜ、いつ、Liquibaseなのか?
-
[解決済み] MS Accessの代替となるフリーソフト [終了しました]。
-
[解決済み] データベースに登録する電子メールアドレスの最適な長さは?
-
[解決済み] テーブルのネーミング。アンダースコアとキャメルケース、名前空間?単数形と複数形?
-
[解決済み] 正規化された電話番号をデータベースに格納するための規格はありますか?
-
[解決済み] ファセット検索とは何ですか?
-
[解決済み] ライブデータベースで気をつけるべきことNo.1とは?[クローズド]
-
[解決済み] PostgreSQLの隠し味【終了しました
-
h:selectOneMenuのオプションをデータベースから入力する方法は?