クエリでのMySQLのユニークキーの使用と関連する問題

クエリでのMySQLのユニークキーの使用と関連する問題

1. テーブルステートメントを作成します。

テーブル「従業員」を作成します(
 `emp_no` int(11) NULLではない、
 `birth_date` 日付がNULLではない、
 `first_name` varchar(14) NOT NULL,
 `last_name` varchar(16) NOT NULL,
 `性別` char(1) NOT NULL,
 `hire_date` 日付がNULLではない、
 主キー (`emp_no`)、
 ユニークキー `idxunique_first_name_gender` (`first_name`,`gender`),
 ユニークキー `uniq_idx_firstname` (`first_name`,`gender`)
) エンジン=InnoDB デフォルト文字セット=utf8

2. 一意のキーを追加します。

-- 一意のインデックスを追加します。alter table employees add constraint idxunique_first_name_gender unique(first_name, gender);

3. クエリテストステートメント:

-- インデックスにすべてのフィールドを含め、順序はインデックスと一致します。select * from employees where first_name='Chirstian' and gender='M';
-- キー列の値: idxunique_first_name_gender
-- インデックスにすべてのフィールドを含めますが、順序とインデックスが一貫していません。select * from employees where gender='M' and first_name='Chirstian';
-- キー列の値: idxunique_first_name_gender
-- 最初のフィールドにインデックスを含める select * from employees where first_name='Chirstian';
-- キー列の値: idxunique_first_name_gender
-- インデックスに最初のフィールド以外のフィールドを含める select * from employees where gender='M';
-- キー列の値: NULL

4. クエリを実行するときに、WHERE 条件に一意のキーの列 (一部またはすべて) のみが含まれ、列の値の型が const の場合。一意のキーを使用する場合は、一意のキーを作成するときに、where 句に最初の列を含める必要があります。その他の列はオプションです。

MySQLのユニークキーに関する質問

xxx_tab の user_id は一意のキーです。疑似コードを見てみましょう。

xxx_tabからuser_id=10000を取得します。
存在する場合 
{
  返品OK
}
ret = user_id=10000を挿入
大丈夫なら 
{
  返品OK
}
not_okを返す

質問: 最終結果が not_ok なのはなぜですか?

ヒント: 分散された影響

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • SQL Server がオブジェクト文字列を一意の識別子に変換する際の保存エラーの問題を解決する
  • MySQL インデックスの種類 (通常、ユニーク、フルテキスト) の説明
  • MySQLは重複しないデータ挿入を実装するためにUNIQUEを使用する
  • MySQL のフィールドに一意のインデックスを追加および削除する方法
  • Mysqlで一意の列に重複した値を挿入する問題を解決する方法
  • uniqueidentifier を varchar データ型に変換する SQL ステートメント
  • ユニークSQLの原理と応用の詳細な説明

<<:  JavaScript で外部変数にアクセスするサブ関数の 3 つのソリューション

>>:  Alibaba Cloud Server に Tomcat をインストールして設定し、外部ネットワーク アクセス ポートを追加するチュートリアル

推薦する

ネイティブ JS で音楽プレーヤーを実装するためのサンプル コード

この記事では主に、次のように共有されるネイティブ JS 音楽プレーヤーのサンプル コードを紹介します...

Linux で大容量メモリ ページを持つ Oracle データベースを最適化する方法

序文PC サーバーは今日まで発展を続け、パフォーマンスにおいて大きな進歩を遂げてきました。 64ビッ...

MySql 共通クエリコマンド操作リスト

MYSQL でよく使用されるクエリ コマンド: mysql> select version()...

Dockerイメージサイズを最適化する一般的な方法

通常、私たちが構築する Docker イメージはサイズが大きく、多くのディスク領域を占有します。コン...

HTML に画像が存在しない場合にデフォルトの画像を表示する方法の例

画像リンク <img src="" /> jsを使用してURLが有効...

JS はランダム点呼システムを実装します

参考までに、JSを使用してランダム点呼システムを実装します。具体的な内容は次のとおりです。毎回の授業...

Docker /var/lib/docker/aufs/mnt ディレクトリのクリーニング方法

会社のサービスはdockerを使用しており、ディスクマンが見つかりました。その後、次のコマンドを実行...

デザイン協会: なぜ間違った場所を探したのですか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

MySQL でストアド プロシージャを作成し、データ テーブルに新しいフィールドを追加する方法の分析

この記事では、例を使用して、MySQL でストアド プロシージャを作成し、データ テーブルに新しいフ...

MySQLは集計関数を使用して単一のテーブルをクエリします

集計関数データセットに作用し、そのデータセットの値を返します。 count: 統計結果のレコード数。...

TypeScript のマップされた型とより優れたリテラル型推論について説明します。

目次概要マップされた型を使用して Object.freeze() を構築するマッピングタイプの構文は...

Mysql クラシック高レベル/コマンドライン操作 (クイック) (推奨)

サーバーとデータベースの構築方法を学ぶ必要があるため、最近は SQL 言語を独学で学び始めました。デ...

Vue.jsはシンプルなタイマー機能を実装します

この記事では、参考までに、簡単なタイマー機能を実装するためのvue.jsの具体的なコードを紹介します...

インタラクティブな視覚化 JS ライブラリ gojs の使い方の紹介とヒント

目次1. gojsの紹介2. Gojsのアプリケーションシナリオ3. gojs を選ぶ理由: 4. ...