MySQLの自動増分主キーIDは段階的に増加しません1. はじめにMySQL データベースにデータを追加し、ON DUPLICATE KEY UPDATE を使用してデータを更新すると、ID が段階的に増加するのではなく、断続的に増加する場合があります。 たとえば、ID が 10 の場合、次に追加されるときには 15 または別の数字になる可能性があります。2 つの数字の間隔は、ON DUPLICATE KEY UPDATE が実行される回数です。つまり、ON DUPLICATE KEY UPDATE は、更新を実行するときにテーブルの主キーを 1 つ増やします。 図に示すように 2. 問題の紹介同じテーブルを追加および変更するときに、2 つのマッパー インターフェイス メソッドを使用しました。つまり、2 つの ON DUPLICATE KEY UPDATE 操作を使用しました。これにより、更新時にテーブルの主キーが増加します。次回挿入時には段階的に増加しません。 3. 解決策データベースの挿入と更新を分割します。 自動増分主キーの利点と欠点主キーの自動増分この方法では、データベースによって提供される自動インクリメント数値フィールドを自動インクリメント主キーとして使用します。その利点は次のとおりです。 (1)データベースは自動的に番号が付けられ、高速かつ段階的に増加し、順序良く保存されるため、検索に非常に便利です。 (2)デジタルタイプは場所を取らず、整理しやすく、プログラムに渡すのに便利です。 (3)システム以外でレコードを追加する場合は、このフィールドを指定する必要はなく、主キーの重複を気にする必要もありません。 実際、その欠点はその利点から生じており、その欠点は次のとおりです。(1)自動増加のため、指定したIDのレコードを手動で挿入するのは面倒です。特に他システムと統合してデータのインポートが必要な場合、元のシステムのIDが主キーと競合しないことを保証するのは困難です(旧システムもデジタルであると仮定)。特に、新しいシステムが起動され、古いシステムと新しいシステムが並行して存在し、データベースが異種であり双方向の同期が必要な場合、自動増分主キーは悪夢になります。 (2)システム統合またはカットオーバー時に、新旧システムの主キーが異なり、数値である場合、主キーのデータ型が変更され、外部キーに関連付けられた他のテーブルも変更され、同様に深刻な結果を招くことになります。 (3)システムもデジタル化されている場合、インポート時に新旧のデータを区別するために、古いデータの主キーの前に文字識別子(「o」、oldなど)を追加して、古いデータであることを示す必要がある場合があります。この場合、自動的に増加するデジタルタイプは別の課題に直面します。 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CSSのoutline-offsetプロパティを使用してプラス記号を実装する
>>: docker compose デプロイメントにおけるマスタースレーブレプリケーションの実装
導入Memcached は分散キャッシュ システムです。Memcached には認証とセキュリティ制...
MySQL でテーブルスペースの断片化を解消する詳細な例断片化の原因(1)テーブルのストレージは断片...
目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...
次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...
複数の Docker コンテナがデプロイされたサーバーがあり、各 Docker コンテナが stde...
JSはショッピングカート内の商品の合計金額を計算して参考とします。具体的な内容は以下のとおりです。質...
原理としては、まずボタン付きの div を記述し、次に画面のサイズに応じて自動的に適応してキーボード...
この記事では、ディープラーニングフレームワーク keras を使用して、SQL インジェクションの特...
Robots.txt はプレーンテキスト ファイルであり、Web サイト管理者は、ロボットによるアク...
はじめに: 最近 Hadoop プラットフォームの構築を勉強し始めたので、ローカルマシンに VMwa...
1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...
最近、個人のウェブサイトを書き直しました。Alibaba Cloudで新しいサーバーを購入しました。...
vsCode のバージョンは最近更新され、現在のバージョン番号は 1.43 です。実際、vsCode...
この記事では、ドラッグプログレスバーを実現するためのVueの具体的なコードを例として紹介します。具体...
目次関数基本的なクエリ関数クエリ条件の初期化ページのレンダリングクエリと表示の最適化をさらに強化プル...