MySQL における主キーが 0 であることと主キーの自己選択制約の関係についての詳しい説明 (詳細)

MySQL における主キーが 0 であることと主キーの自己選択制約の関係についての詳しい説明 (詳細)

序文

この記事は主にMySQLの主キー0と主キー自己排除制約の関係を紹介し、皆さんの参考と学習のために共有します。詳しい紹介を見てみましょう。

主キーのないテーブルの設計は次のとおりです。

id 位置に 0 が複数ある場合: 主キーを設定して自動的にソートすると、0 は 1 から増加します。

id = 0 のデータを挿入すると、データは実際の行数から増加します。これは、0 から変更する場合とは異なります。

これで主キーに 0 がなくなりました。ID を 0 に変更しても、0 は変更されません。直接ソートされます。

id=0 の別のものを挿入し、以前と同様に行数に直接関連していることを確認します。

この 0 が変化するかどうかを確認するには、自動ソートを再度リセットします。まず自動ソートをキャンセルします。

自己ソートを追加すると、予想どおり、0 が 1 になりそうになり、エラー メッセージには主キーに重複した 1 があるため、自己ソートは許可されないと表示されました。

修正後、実際に動作し、0が1になり、

まとめ

これらは唯一のケースだと思います。署名のないケースも同じはずです。他に私が考慮していないことがあれば、メッセージを残してご意見をお聞かせください。私も知りたいです。それでは、私の要約と考えを書き留めます。

私にとって、データベース内の 0 は特別なものです。

制限を使用して指定した範囲のデータを表示する場合、テーブルは 0 から下へソートされます。ただし、データ行を挿入する場合は行数に関係します。このとき、1 から下へソートされます。主キー自己ソート制約を使用する前にテーブルに 0 があった場合、主キー自己ソート制約を設定した後、すべての 0 は行数に従ってソートされるのではなく、1 から上から下に直接ソートされます。テーブル内の主キーの番号を 0 に変更すると、直接ソートされ、正の数の前に配置されます。つまり、主キーの自己ソートにより、0 の存在が許可されます。では、既存の 0 を 1 から始まる昇順に変更する必要があるのはなぜでしょうか。主キーのセルフソートを追加する前に 0 が 1 つしかなかったとしても、主キーのセルフソートを追加した後は 1 になります。

最初は 0 から始まり、主キーの自己順序制約が追加されると、0 は 1、2、3、4 などになります。

先頭に0はありません。主キーの自己順序制約を追加します。主キーが0の新しく追加された行は、行数に応じて自動的に変更されます。これは新しく追加された行であり、挿入が使用されていることに注意してください。

先頭に 0 はありません。主キーの番号を 0 に変更すると、ソート後のテーブルにこの 0 が直接表示されます。

簡単に言えば、主キーの自己ランキング制約を追加した後は次のようになります。

主キーの値: 0 に変更されましたが、ソートのためだけに存在できます。

新しく追加された 0 は存在が許可されず、行番号に応じて変更する必要があります。

既存の 0 は存在できず、変更は 1 から始まり、段階的に増加する必要があります。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • MySQL 外部キー制約の一般的な操作の例 [表示、追加、変更、削除]
  • 外部キー制約を持つテーブルデータを削除する MySQL メソッドの紹介
  • MySQL におけるユニーク制約と NULL の詳細な説明
  • MySQL の外部キー制約の詳細な説明
  • MySQL は、テーブルの列や制約などを追加、変更、削除します。
  • mysqlはBitmap_Join_Indexesに制約とインデックスを作成します
  • MySQLの基本操作を詳しく解説(第2部)

<<:  VUE+CanvasはシンプルなGobangゲームの全プロセスを実現します

>>:  Linux システムの busybox に mkfs.vfat コマンドを移植する

推薦する

Vue3.xはコンポーネント通信にmitt.jsを使用します

目次クイックスタート使い方基本原則Vue2.x はコンポーネント通信に EventBus を使用しま...

セマフォによるTomcatの異常終了の解決方法

最近はビッグデータで遊んでいます。友人が私のところに来て、オンラインの Tomcat が不可解に終了...

HTML 文法百科事典_HTML 言語文法百科事典 (必読)

ボリュームラベル、プロパティ名、説明002 <! - - ... - -> コメント00...

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...

GaussDB for MySQL パフォーマンス最適化の詳細な説明

目次背景インスピレーションは人生から生まれる速達配送の最適化原則GaussDB の最適化 (MySQ...

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整...

keepalived+nginx の高可用性を実装する方法の例

1. keepalived の紹介Keepalived は、もともと LVS クラスタ システム内の...

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...

CSS3 オーバーフロープロパティの説明

1. オーバーフローOverflow はオーバーフロー(コンテナ)です。コンテンツがコンテナを越える...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

JavaScriptの無限ループを検出して防止する方法の詳細な説明

目次序文for文の無限ループを修正while文の無限ループを修正要約する序文Js デッド ループはど...

MySql 8.0.11 のインストールと設定のチュートリアル

公式ウェブサイトアドレス: https://dev.mysql.com/downloads/mysq...

フロントエンドの面接でよく聞かれる JavaScript の質問の完全なリスト

目次1. 手書きのインスタンス2.配列のマップメソッドを実装する3. Reduceは配列のmapメソ...

Linux サーバーが処理できる接続数をご存知ですか?

序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...

複数のフィールドを変更するためのMysql更新の構文の詳細な分析

MySQL でレコードを更新すると、構文は正しいのですが、レコードが更新されません...質問文実行前...