MySQL が重複データを挿入するのを防ぐ 3 つの方法

MySQL が重複データを挿入するのを防ぐ 3 つの方法

新しいテーブルを作成する

テーブル「人」を作成します(
 `id` int NOT NULL COMMENT '主キー',
 `name` varchar(64) 文字セット utf8 照合 utf8_bin NULL デフォルト NULL コメント 'Name',
 `age` int NULL デフォルト NULL コメント '年齢',
 `address` varchar(512) 文字セット utf8 照合 utf8_bin NULL デフォルト NULL コメント 'Address',
 BTREE を使用した主キー (`id`)
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

次の 3 つのデータを追加します。

挿入方法に応じてこれを回避できます。

1. 無視を挿入

insert ignore は、データベースに既に存在するデータを自動的に無視します (主キーまたは一意のインデックスに基づきます)。データがない場合、データを挿入します。データがある場合、このデータの挿入をスキップします。

--次のようにSQLを挿入します。
ignore を person (id,name,age,address) に挿入します。values(3,'那谁',23,'赣苏省'),(4,'我天',25,'浙江省');

再度データベースを確認すると、ID 4 のデータのみが挿入されていることがわかります。ID 3 のデータは既にデータベースに存在するため、無視されます。

2. を置き換える

replace into は、まずデータをテーブルに挿入しようとします。1. このデータ行がテーブル内に既に存在することが判明した場合 (主キーまたは一意のインデックスによって決定)、まずこのデータ行を削除してから、新しいデータを挿入します。 2. それ以外の場合は、新しいデータを直接挿入します。

--次のようにSQLを挿入します。
人物(ID、名前、年齢、住所)の値(3、'那谁'、23、'赣苏省')、(4、'我天'、25、'浙江省')に置き換えます。

まず、テーブル内のデータを復元し、挿入操作後に、ID 3 のデータが変更され、ID 4 のデータが追加されたことがわかります。

3. 重複キーの更新時に挿入する

重複キー更新時の挿入 insert into ステートメントの最後に重複キー更新 + フィールド更新が指定されている場合、重複データが発生したときに、後続のフィールド更新の記述に従って情報が更新されます (主キーまたは一意のインデックスによって決定されます)。

--次のようにSQLを挿入します。
重複キーに対して person (id,name,age,address) values(3,'那谁',23,'赣苏省') を挿入し、name='那谁'、age=23、address='赣苏省' を更新します。

まず、テーブル内のデータを復元し、挿入操作を実行したときに、ID 3 のデータが変更されていることがわかったので、更新操作を実行しました。

ビジネスニーズに応じて方法を選択できます。

上記は、MySQL がデータを繰り返し挿入するのを防ぐ 3 つの方法の詳細です。MySQL がデータを繰り返し挿入するのを防ぐ方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySql でデータの重複挿入を回避する 3 つの方法
  • MySQLは重複しないデータ挿入を実装するためにUNIQUEを使用する
  • MySQL が重複レコードを挿入するのを防ぐ方法
  • MySql でレコードの重複挿入を回避するいくつかの方法
  • MySQL でデータの重複挿入を回避する 4 つの方法

<<:  Docker で MySQL をインストールし、リモート接続を実装するチュートリアル

>>:  テキストの展開と折りたたみの効果を実現するJavaScript

推薦する

Vue ターンテーブル抽選の簡単な実装

この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...

MySQL 8.0.26 のインストールとアンインストールの完全なステップバイステップの記録

目次序文1. インストール1.公式サイトからダウンロード2. 構成を作成する3. MySQLを初期化...

クラウドネイティブテクノロジー Kubernetes (K8S) の紹介

目次01 Kubernetes とは何ですか? 02 KubernetesとCompost+Swar...

HTML でスクロールバーを非表示にしたり削除したりする方法

1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...

CocosCreatorプロジェクト構造の仕組みの詳細な説明

目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...

JavaScript でイベントのバブリングを防ぐ方法

注意すべき点は、イベントバブリング自体の特性上、メリットだけでなくデメリットも生じるということです。...

CSS3 で複数のカスタムフォントを導入する

今日、HTML に問題を発見しました。多くのデフォルト フォントが提供されていますが、「Bold」、...

IdeaでTomcatを起動したときに複数のリスナーが報告される問題を解決する

エラーのスクリーンショット例外が発生した場所が見つかりません。解決策: リソースディレクトリにlog...

Node.jsとDenoの比較

目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...

MySQL双方向バックアップの実装方法

MySQL 双方向バックアップはマスター-マスター バックアップとも呼ばれ、両方の MySQL サー...

CSS におけるスタックコンテキストの具体的な使用法

序文一部の CSS 相互作用の影響により、要素に設定されたz-index実際のサイズに応じて重ね合わ...

MySQL 8.0.11 圧縮版のインストールチュートリアル

この記事では、MySQL 8.0.11のインストールチュートリアルを参考までに紹介します。具体的な内...

JavaScriptは、マウスが通過したときにドロップダウンボックスを表示するように実装します。

この記事では、マウスがドロップダウンボックスの上を通過するときにドロップダウンボックスを表示するため...

Vue3 Vue CLI マルチ環境設定

目次1. はじめに2. 切り替え1. 開発および本番環境の設定ファイルを追加する2. 複数の環境をサ...

Dockerの国内イメージソースを変更する方法

Dockerデーモンのアクセラレータを構成する設定ファイルから Docker を起動し、/etc/d...