MySQLは重複しないデータ挿入を実装するためにUNIQUEを使用する

MySQLは重複しないデータ挿入を実装するためにUNIQUEを使用する

SQL UNIQUE制約

UNIQUE 制約は、データベース テーブル内の各レコードを一意に識別します。
UNIQUE 制約と PRIMARY KEY 制約はどちらも、列または列セットの一意性を保証します。
PRIMARY KEY には UNIQUE 制約が自動的に定義されます。

テーブルごとに複数の UNIQUE 制約を設定できますが、PRIMARY KEY 制約はテーブルごとに 1 つしか設定できないことに注意してください。

次の SQL は、「Persons」テーブルの作成時に、「Id_P」列に UNIQUE 制約を作成します。

テーブルの作成
(
  Id_P int NULLではない、
  姓 varchar(255) NOT NULL,
  ファーストネームvarchar(255)、
  住所varchar(255)、
  都市ヴァルチャー(255)、
  ユニーク (Id_P)
)

UNIQUE 制約に名前を付け、複数の列に対して UNIQUE 制約を定義する必要がある場合は、次の SQL 構文を使用します。

テーブルの作成
(
  Id_P int NULLではない、
  姓 varchar(255) NOT NULL,
  ファーストネームvarchar(255)、
  住所varchar(255)、
  都市ヴァルチャー(255)、
  制約 uc_PersonID UNIQUE (Id_P、LastName)
)

テーブルが作成されたら、「Id_P」列に UNIQUE 制約を作成するには、次の SQL を使用します。

ALTER TABLE Persons ADD UNIQUE (Id_P)

UNIQUE 制約に名前を付け、複数の列に UNIQUE 制約を定義するには、次の SQL 構文を使用します。

ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

UNIQUE 制約を削除するには、次の SQL を使用します。

ALTER TABLE Persons DROP INDEX uc_PersonID

このように、重複レコードを挿入するたびに、MySQL はキー uni_que の重複エントリ value1-value2 を要求します。もちろん、挿入時に無視するように ignore を追加することもできます。重複レコードがなくなったので、レコードが存在しない場合は挿入を開始し、存在する場合は更新を開始します。

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...

この文は値を挿入することを意味します。レコードがない場合は、

INSERT INTO tablename (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...)

このセクションでは、レコードが存在する場合は、

UPDATE field1='value1', field2='value2', field3='value3', ...

以下もご興味があるかもしれません:
  • MySQLテーブル内の重複レコードを見つける
  • 1 つ以上のフィールドに基づいて重複データを検索する MySQL SQL ステートメント
  • MySQLで重複データを見つけて削除し、1つの例だけを残す方法の詳細な説明
  • MySQLテーブル内の重複データをクエリする方法
  • MySQLデータベース内の重複データを削除する方法の概要
  • MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)
  • 重複データを処理するための非常に包括的なMySQLコード
  • MySQL データベース内の重複レコードを削除する方法のまとめ [推奨]
  • MYSQLにデータを挿入する際に重複データを無視する方法を共有する
  • 重複したMySQLレコードを現場でチェックし、処理する実践的な記録

<<:  WeChatアプレットが複数行テキストのスクロール効果を実現

>>:  Windows Server 2012 でデスクトップ上の一般的なアイコンを表示または非表示にする方法

推薦する

HTML コードの書き方に関する提案のまとめ

リソースファイルのプロトコルを省略する画像、メディアファイル、スタイル、スクリプトの URL では、...

Vueはグラフィック検証コードを実装する

この記事の例では、グラフィック検証コードを実装するためのVueの具体的なコードを参考までに共有してい...

EasyUEFI を使用して Windows 10 で USB ドライブなしで Ubuntu 18 をインストールする

1. BIOSを確認するまず、コンピュータの起動モードを確認します。win+R と入力し、msinf...

MySQLクエリ文を書き換える3つの戦略

目次複雑なクエリとステップバイステップのクエリクエリステートメントを分割する共同クエリの分解問題のあ...

Linux における「/」と「~」の違いの詳細な説明

「/」はルートディレクトリ、「~」はホームディレクトリです。 Linux ストレージはツリー状にマウ...

ReactのEffectListの簡単な分析

目次EffectList コレクション最初のレンダリング時のEffectList EffectLis...

将来的に人気のあるウェブサイトのナビゲーションの方向

<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...

JSでよく使われるデータ処理方法

目次DOM処理配列方法要約するDOM処理DOM はドキュメントの構造化された表現を提供し、スクリプト...

複数の X 軸を使用して 7 日間の天気予報を実現するための Echarts サンプル コード

目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...

画像をハイパーリンクとして使用したときに表示される青いボックスを削除する方法

最近、Dreamweaver を使用して製品プレゼンテーションを作成し、画像にハイパーリンクを追加し...

MySQL ステートメントにおける IN と Exists の比較分析

背景最近、SQL 文を書くときに、IN と Exists のどちらを選択するか迷ったので、両方の方法...

オンラインチャットを実現するVue+sshフレームワーク

この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...

LinuxにNginxをインストールする詳細な手順

1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...

Vue+Openlayerはmodifyを使用して要素の完全なコードを変更します

Vue+Openlayerはmodifyを使って要素を変更します。具体的な内容は以下のとおりです。 ...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント。ウェブサイトのアクセス速度...