クエリでの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 をインストールして設定し、外部ネットワーク アクセス ポートを追加するチュートリアル

推薦する

Nginx proxy_redirect の使用方法の詳細な説明

今日、Apache の nginx リバース プロキシを実行していたときに、ちょっとした問題に遭遇し...

MySQL初心者のための基本操作のまとめ

図書館運営クエリ1.SHOW DATABASE; ----すべてのデータベースを照会する2. SHO...

Windows 10 の仮想マシンに Mac システムをインストールするグラフィック チュートリアル

1. 仮想マシンバージョン15.5.1をダウンロードする公式サイトから直接最新バージョンをダウンロー...

Linux のような環境で jdk1.8 をインストールし、環境変数を設定する方法の詳細な説明

設定は非常にシンプルですが、毎回確認しないといけないので、記録だけ残しておきます。 1. インストー...

js オプション連鎖演算子の使用

序文オプションの連鎖演算子 (?.) を使用すると、チェーン内の各参照が有効であることを明示的に検証...

データベースSQL SELECTクエリの仕組み

私たちは Web 開発者として、プロの DBA ではありませんが、データベースなしではやっていけませ...

EF (Entity Framework) の挿入または更新データ エラーの解決方法

エラー メッセージ:ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響を与...

Vueルーティングナビゲーションガードの簡単な理解

目次1. グローバルガード1. グローバル前線警備2. グローバル解像度ガード3. グローバルポスト...

Docker デプロイメントサービスの落とし穴を登る過程の詳細

初めて書きます。自己紹介させてください...みなさんこんにちは。私はジャスミンです。なぜジャスミンと...

iframe でページを開く方法

解決:リンクのターゲット属性値をターゲット フレームワーク名と同じに設定するだけです。具体的な手順:...

MySQL 8.0.25 解凍版のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25解凍版のインストールチュートリアル、参考までに具体的な内容は以下のとおりです...

Pengyou.com モバイル クライアントのダウンロード ページのデザイン共有 (画像とテキスト)

まずは簡単なデータを見てみましょう。 Googleが発表したレポートによると、 ①中国の都市の97%...

Reactはグローバル箇条書きボックスメソッドをカプセル化します

この記事の例では、Reactカプセル化グローバルポップアップボックスの具体的なコードを参考までに共有...

Rails APIを使用してReactアプリケーションを構築するための詳細な手順

目次バックエンド: Rails API部分フロントエンド: React部分Reactコンポーネントa...