MySQL の replace と replace into はどちらも頻繁に使用される関数です。replace は、最初に削除してから挿入するのではなく、実際に更新操作を実行します。また、replace into は実際には insert into と非常によく似ていますが、replace into の場合、テーブル内の古いレコードが PRIMARY KEY または UNIQUE インデックスの新しいレコードと同じ値を持つ場合、新しいレコードが挿入される前に古いレコードが削除されます。 Replace は、文字列を処理するために MySQL でよく使用される関数であり、文字列内の内容を置き換えることができます。また、trim と呼ばれる同様の文字列処理操作もありますが、ここでは詳しく説明しません。 replace into の主な機能は、挿入操作に似ています。主な違いは、replace は主キーまたは一意のインデックスに基づいてデータが存在するかどうかを確認し、存在する場合は更新前に削除することです。 例: #テーブル構造: テーブル `t_test` を作成します ( `id` int(11) 符号なし NOT NULL AUTO_INCREMENT, `name` varchar(1) NOT NULL DEFAULT '' 主キー (`id`)、 BTREE を使用したユニーク キー `idx_name` (`name`) ) エンジン=InnoDB デフォルト文字セット=utf8mb4 最初のレコードを挿入する t_test (`name`) に値 ('a') を挿入します #またはREPLACE INTO t_test (`name`) VALUES ('a') ps: replace into のキーワード into は省略できます。見た目は同じですが、使い方が少し異なります。 1. replace(オブジェクト,検索,置換) オブジェクト内の検索のすべての出現を置換で置き換えます
例: テーブルの名前フィールドの詳細を説明に置き換える
2. を置き換える 同等: REPLACE は INSERT とほぼ同じように動作します。テーブル内の古いレコードが PRIMARY KEY または UNIQUE インデックスの新しいレコードと同じ値を持つ場合、新しいレコードが挿入される前に古いレコードが削除されます。 テーブルに PRIMARY KEY または UNIQUE インデックスがない場合は、REPLACE ステートメントを使用しても意味がないことに注意してください。このステートメントは、新しい行が他の行と重複しているかどうかを判断するためにインデックスが使用されないために、INSERT と同一になります。 すべての列の値は、REPLACE INTO ステートメントで指定された値から取得されます。欠落している列は、INSERT INTO の場合と同様に、デフォルト値に設定されます。現在の行の値を参照することも、新しい行の値を使用することもできません。 「 REPLACE INTO を使用するには、テーブルに対する INSERT および DELETE 権限が必要です。 REPLACE ステートメントは、影響を受ける行の数を示す数値を返します。この数値は、削除された行と挿入された行の合計数です。単一行の REPLACE でこの数値が 1 の場合、行が挿入され、行は削除されません。この数値が 1 より大きい場合、新しい行が挿入される前に 1 つ以上の古い行が削除されました。テーブルに複数の一意のインデックスが含まれており、新しい行が異なる一意のインデックスの異なる古い行の値を複製する場合、1 つの行で複数の古い行を置き換えることが可能になります。 影響を受ける行数により、REPLACE によって 1 行のみが追加されたのか、それとも REPLACE によって他の行も置き換えられたのかを簡単に判断できます。数が 1 (追加) 以上 (置き換え) かどうかを確認します。 現在、テーブルを変更してサブクエリで同じテーブルから選択することはできません。 使用されるアルゴリズムの詳細な説明は次のとおりです (このアルゴリズムは LOAD DATA...REPLACE にも使用されます)。 1. テーブルに新しい行を挿入してみる 2. 主キーまたは一意キーの重複キー エラーが原因で挿入が失敗した場合:
3 つの形式:
追伸: MySQL にデータを挿入するためによく使用される 3 つのステートメント:
要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: Nginx 設定場所のマッチング優先順位の簡単な分析
>>: JavaScript でシンプルなタイマーを実装する
目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...
目次概要同一生成元ポリシー (SOP)相同制限クロスドメインをバイパスクロスサイトリクエストフォージ...
前提条件: Mac、zsh がインストールされ、bash のときに mysql がダウンロードされ、...
目次Tomcat ダウンロードチュートリアルTomcat インストールチュートリアルTomcat の...
目次1. 概要1.1 プロトタイプとは何ですか? 1.2 プロトタイプを入手する2. プロトタイプの...
大画面のデジタル スクロール効果は、最近の作業における大画面 UI ダイアグラムから生まれました。U...
1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...
序文MySQL の権限を簡単に理解すると、MySQL では自分の能力の範囲内で操作が許可され、その限...
序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...
キーの入力を求められた場合は、[キーがありません]を選択します。デスクトップエクスペリエンスを選択す...
複数テーブルクエリ複数のテーブルから関連するクエリ結果を取得するには、単一の SELECT ステート...
この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを例として紹介します。...
実はこれもクリックベイトのタイトルであり、「派手」とは言えません。ただ私が無知で、こうしたラベルを見...
次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...
<br />はじめに:このアイデアは、数日前に上級ウェブデザインの次の記事を考えていると...