ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない 挿入する前に、挿入するデータが存在するかどうかを判断できます。ビジネス コードは次のとおりです。 t_topic_vistor(user_id,topic_code)に挿入し、'218'を選択します。 'XQ33019920170811142528217' が存在しない DUAL から(SELECT * t_topic_vistorからuser_id = 218で トピックコード='XQ33019920170811142528217') 構文は次のとおりです。 テーブルにINSERT INTO(フィールド1, フィールド2, フィールドn) SELECT 'フィールド1', 'field2', 'fieldn' FROM DUAL WHERE NOT EXISTS(SELECT field FROM テーブル WHERE フィールド = ?) 追加知識: MySql は存在しない場合は挿入し、存在する場合は更新または無視します。 序文 データを挿入するときに、重複データを無視または置換する必要がある場合があります (特定のフィールドに基づいて)。これはアプリケーション層で処理することも、複雑な SQL ステートメントを使用して処理することもできます (簡単な SQL 構文しか知らない場合)。もちろん、簡単な SQL 構文を使用することもできますが、すべてのデータベース タイプに共通というわけではありません。 以下の例はすべて MySQL 専用であり、他のデータベースに自由に使用することはできません。 例 テーブル名: 学生 テーブルフィールド:
初期テーブルデータ:
注: 以下のすべての例では、挿入するデータに UNIQUE インデックスまたは PRIMARY KEY フィールドが存在する必要があります。ここでテーブルの主キー ID が導入され、自動増分に設定されています。後でその変更を確認できます。 1. 存在しない場合は挿入し、存在する場合は更新する 重複キーの更新に関する 1.1 挿入されたデータによって UNIQUE インデックスまたは PRIMARY KEY で競合/重複が発生する場合は、次のように UPDATE ステートメントを実行します。 `student`(`name`, `age`) VALUES('Jack', 19) に INSERT します 重複キーについて UPDATE `age`=19; -- 競合が発生する場合は、更新ステートメントが実行されます -- 2 行が影響を受けています ここで影響を受ける行数は 2 です。これは、データベースに name='Jack' のデータがあるためです。このデータが存在しない場合、影響を受ける行数は 1 です。 最新のテーブルデータは次のとおりです。
1.2 を置き換える 挿入されたデータによって UNIQUE インデックスまたは PRIMARY KEY で競合/重複が発生する場合は、まず古いデータを削除してから最新のデータを挿入します。例:
ここで影響を受ける行数は 2 です。これは、データベースに name='Jack' のデータがあるためです。また、最初に古いデータを削除してからデータを挿入するため、id の値は 2 になります。最新のテーブル データは次のとおりです。
2. 重複挿入を避ける キーワード/文: insert ignore into、挿入されたデータが UNIQUE インデックスまたは PRIMARY KEY で競合/重複を引き起こす場合、操作は無視され、データは挿入されません。例:
ここには name='Jack' のデータがすでに存在するため、新しく挿入されたデータは無視され、影響を受ける行数は 0 となり、テーブル データは変更されません。 MySQLに挿入する前にデータが存在するかどうかを判断する上記の操作は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
この記事では、MySQL マスターとスレーブ データ間の不一致の解決方法と、プロンプト「Slave_...
この記事を読む前に、Volumes について予備知識を身に付けておいてください。詳細については、こち...
目次1. ユーザーとユーザーグループの重要性1) ユーザーの存在意義2) ユーザーグループの重要性2...
素敵なフリップログインと登録インターフェースを作成する序文最近、ネットワーク ディスクを構築しようと...
SQL ページング クエリ:背景会社のシステムには、構成管理用のプラットフォーム、いわゆる CRUD...
序文ストレス テスト中に、リソース使用のボトルネックによって発生する最も直接的なパフォーマンスの問題...
コンテナと呼ばれるものは、実際には親イメージに基づいて読み取りおよび書き込み可能なファイル階層を作成...
背景:場合によっては、json データをページに直接表示する必要があります (たとえば、インターフェ...
目次背景効果アイデア背景少し前に、会社のプロジェクトで問題が発生しました。地図のベースマップ領域の範...
1. 行の形式は何ですか? MySQL の行形式の設定は次のように表示されます。 実際、MySQL ...
Linux サーバーに GRUB をインストールする方法クラウド移行ツールを使用して、CentOS ...
序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...
yumを使用してcentos7.3にDocker V1.13.1をインストールしましたしかし、doc...
FIFO通信(先入れ先出し)関連のないプロセス間の通信を可能にする FIFO 名前付きパイプ。パイプ...
VirtualBoxのインストールディレクトリを見つけます。ディレクトリ内には容量を拡張するために...