問題タブ [on-duplicate-key]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 重複キー更新時の複数挿入
私が達成しようとしているのは、この例に似ています
ただし、私の違いは、同時に複数の挿入を行おうとしていることです。たくさんの行を更新しています。
重複している場合は、挿入でセッション数を増やしてほしい
次の(簡略化されたバージョン)は構文エラーになりますが、何を達成しようとしているのかを説明する必要があります
以下の注に従って、挿入された値を重複値と一致するように変更しました
mysql - 特定の条件が満たされた場合、キーの重複で特定のフィールドを更新します
CSV ファイルからデータをアップロードするテーブルがあります。
フィールドは次のようなものです。
ここでの主キーは (StudentName,SubjectName)
次のコードを使用して、データをテーブルに取得します。
インポートする必要がある csv ファイルが複数あります。キーが重複している可能性があります。重複が見つかったときに特定のフィールドを更新しようとしています。
例: 重複がある場合、 UPDATE field RESULT if : value for result in the duplicate entry is "Pass".
各 csv ファイルは、テストが実施される日ごとになります。生徒が少なくとも 1 回は合格した場合、表にはそれが反映されている必要があります。
これを実現するには、コードをどのように変更すればよいですか?
mysql - 条件付き更新の使用 - 重複キー更新時
「Temp_main」という別のテーブルから値を取得する「RESULT」という次のテーブルがあります
「RESULT」のフィールドは次のようになります。
ここでの主キーは(StudentName,SubjectName)
次のコードを使用して、データをテーブルに取得します。
temp_main テーブルには同じ主キーがないため、データを結果テーブルに挿入すると、キー値が重複します。
学生が同じ科目のテストに複数回出席するとします。彼の試行はすべて temp_main テーブルにあり、最高の結果だけが Result テーブルにあります。
ON DUPLICATE KEY UPDATE
最新の結果が「合格」の場合にのみ、学生と科目のペアの結果を更新するコードを取得しようとしています
私は試した
これはくだらないコードだと確信しています。しかし、私はより良い解決策を得ることができませんでした。
mysql - 2 つの主キーを持つテーブルには ON DUPLICATE KEY を使用します。
user_id
2 つの主キー ( , ) を持つテーブルがあります。テーブルにこれをpost_id
含む行がない場合にのみ行を挿入
し、このキーの以前のデータが存在する場合、その行のみが新しいデータで更新されます。このクエリを作成しました。user id
post id
たとえば、次の行がテーブルに存在する場合:
- ユーザーID:5
- post_id:1
- post_per:001
- comment_per:111
- cat_per:101
次に、上記のクエリを実行すると、mysql はこの行を更新しますが、post_id
この行が「1」であるという理由だけで、mysql はこの行を更新すべきではありません。何が問題なのかわかりません。
上記のクエリの結果は次のとおりです。
=================
すべての友人に感謝しますテーブルを削除して再度作成することにしたとき、このテーブルからエクスポートを取得して.sql
ファイルを確認すると、次のように表示されます。
どうやら、問題は UNIQUE KEY にあるようです。ファイルから削除し、テーブルを削除してからtrust_list
.sql ファイルをインポートします。これで問題が解決しました。ありがとうございました
mysql - 重複したmysqlの挿入と更新
複数の列を持つテーブルがあり、それに乗数を挿入しています。
すなわち:
「CURRENT_COL_VAL」の代わりに何を書けばいいですか?挿入からの値で重複行を更新したい場合。
複数の挿入のすべての行挿入で異なるため、静的な番号をその中に配置できないためです
mysql - MySql の既存の行を更新し、重複したキーを処理する
アプリケーションのユーザーに関するデータを含む MySql データベースがあります。このアプリケーションはすでに製品化されていますが、日々改良が加えられています。私が行った最後の改善は、データを収集してデータベースに挿入する方法を変更したことです。
明確にするために、私のデータベースは、ユーザーデータを含む5つのテーブルと、外部キーを介してすべてのテーブルを関連付ける1つのテーブルで構成されています。これらの 5 つの外部キーが一緒になって、私が持っているこの「メイン テーブル」の一意のインデックスを形成します。
問題は、ユーザー データを含むこれらのテーブルの 1 つがその形式を変更したことです。アプリケーションで行った変更よりも古いすべてのデータを削除したい (このテーブルから、そのままにしておく必要がある他のテーブルのみ)。ただし、このデータセットにはメイン テーブルに外部キーがあり、他の情報が重要であるため、これらの行をメイン テーブルにドロップすることはできません。具体的には、このテーブルの外部キーの値を変更しようとしましたが、明らかに、重複したインデックスに関連する問題があります。
インターネットで読んで、「挿入...重複キー更新時...」を使用して問題の解決策を見つけましたが、データを挿入するのではなく、更新するだけです。PHP でデータベースを更新するプログラムを作成する方法についてアイデアがありますが、他に簡単な解決策はありますか? MySql 構文だけを使用してこれらの問題を回避することは可能ですか?
php - Mysql ON DUPLICATE KEYエラー
重複キーに少し問題があります。私のコードから始めましょう。
そのため、最初のテーブルから変数を取得して 2 番目のテーブルに挿入しようとしていますが、学生ごとに約 4 つのエントリ (クラスごとに 1 つ) があります。基本的に、私はそれらをすべて取得してから、「重複したキーで、同じ oen 番号を持つ最後のエントリを削除します。エラーが発生しています」警告: mysql_error() は、パラメーター 1 がリソースであると想定しています。 /var/www/ride/admin_settings/csv/students/update.php の 23 行目で、ON DUPLICATE KEY のコード部分が表示される行にあります。