私は2つのデータベーステーブルを持っています.2つのテーブルは同じ構造を持っています。今私は古いテーブルから新しいテーブルにデータを挿入したい場合は、データがすでに存在する場合は古いデータを更新し、それ以外の場合は新しいデータを挿入します。私はいくつかの列フィールドの値を一致させることによってデータを挿入または更新したい。どんな助け?古いテーブルから新しいテーブルにデータを挿入する
答えて
MySQLのON DUPLICATE KEY UPDATE
機能を利用することができます。 MySQL docから -
あなたがDUPLICATE KEY UPDATE ON指定し、行は がUNIQUEインデックスまたはPRIMARY KEY内の重複値を引き起こすことに挿入されている場合は、MySQLの は古い行のUPDATEが実行されます。
したがって、テーブルにキーが定義されている場合は、この機能を使用できます。例えば、あなたのステートメントは次のようになります:
insert into target_table (col1, col2, ...)
select col1, col2,... from source_table
on duplicate key update
col1 = values(col1),
col2 = values(col2),
Broは "ON DUPLICATE KEY UPDATE"でユニークなインデックスまたはプライマリキーのみをチェックしますか? –
レコードを一意にする列に少なくともUNIQUEインデックスを作成する必要があります – hashbrown
私のテーブルにはプライマリキー(id)がありません。ユニークなインデックスとテーブルは1000のデータを持っています –
最も良い方法は、左外部結合の概念を使用することです。それは簡単になります。
INSERT INTO table1
(col_1, col_2, col_3, col_4, col_5) values("","","","")
SELECT
table2_col_1,
table2_col_2,
table2_col_3,
table2_col_4,
1
FROM
table_2 AS t2
LEFT OUTER JOIN
table1 AS t1
ON
t1.col_1 = t2.table2_col_1;
UPDATE table_2
SET table2_col_1 = 'value'// here is the value that you need to implement
WHERE t1.col_1=t2.table2_col_1;//here is your condition
あなたの質問から、私はあなたのテーブル2はあまり重要ではないことを理解しました。 したがって、構造体が影響を受けないように、table2全体に存在する値を削除することができます。終了したら、insertクエリをエクスポートしてtable1に存在する値を実装できます。
Bro私は私の古いテーブルと新しいテーブルの何千(古いプラスいくつかの新しい)の約500のデータを持っていますが、古いテーブルからいくつかのデータを見逃しました。古いテーブル –
- 1. 別のテーブルにコピーし、テーブルから新しいデータを挿入
- 2. 古いテーブルの新しいテーブルにSQLを挿入
- 3. ビューから新しいテーブルに挿入
- 4. 新しいテーブルを作成して別のテーブルからデータを挿入する
- 5. Laravel 5で古いテーブルから新しいテーブルに移行するデータ移行
- 6. テーブルから別のテーブルに新しいデータを挿入するにはどうすればいいですか?
- 7. SQLite古いテーブルにある新しいテーブルのデータから削除
- 8. jQuery ajaxから新しい行としてテーブルにjsonデータを挿入する
- 9. バックアップテーブルから新しいテーブルに列の行を挿入する
- 10. WordPress重力フォームのデータを新しいテーブルに挿入する
- 11. 新しいテーブルを作成中に別のテーブルから値を挿入する
- 12. 複数テーブルのレコードを新しいテーブルに挿入する
- 13. 1つのテーブルから別のテーブルにデータを挿入するステートメントを挿入
- 14. テーブルに新しい行を挿入
- 15. テーブルに新しい行を挿入
- 16. sql:新しい列をテーブルに挿入
- 17. あるテーブルから別のテーブルにデータを挿入する -
- 18. あるテーブルから別のテーブルにデータを挿入し、新しい値を追加する
- 19. 新しいテーブルに古いデータを挿入するためのトリガーを作成します。
- 20. 新しいデータを削除せずに古いデータベースから新しいデータベースにデータを挿入する
- 21. Sqliteデータベースをアタッチし、テーブルAからテーブルBにデータを挿入
- 22. データテーブルからMySqlテーブルにデータを挿入
- 23. 古いテーブルをlaravelの新しいテーブルに移行する
- 24. Bigquery - Pythonで新しいデータ行をテーブルに挿入
- 25. あるテーブルから別のテーブルにデータを挿入
- 26. 3つの異なるテーブルからデータを取得して新しいテーブルに挿入
- 27. 新しいレコードを挿入中に新しいテーブルを作成
- 28. angular 2新しいテーブル項目をテーブルの先頭に挿入
- 29. HTMLテーブルから古い行を削除し、1回のクリックで新しい行を挿入します。
- 30. ハイブ - 新しいテーブルを作成し、更新されたデータを挿入する
何を試しましたか?どのDBを使用していますか?あなたのDBのスキーマは? – Lee