2017-07-28 8 views
0

上の選択に私は多くの列を持つテーブルを持っているが、私は現在のテーブルと同じdescを持つ別のテーブルからのみいくつかの列を更新したい、私は、MySQLで重複したレコードに更新しようとしている重複したMySQLのクエリ

を挿入しますが、レコードを更新していません。

私のクエリは次のとおりです。

、t.end_date、(ティッカー、END_DATE、cur_date)はティッカーを選択 backup_prochart.symbol_listにprochart.symbol_listトンどこ ティッカー= t.tickerからt.cur_dateを挿入し、ティッカー=重複キー更新で 'MAY17' end_date = t.end_date、cur_date = t.cur_date; iは

を試み

別のクエリがbackup_prochart.symbol_list(ティッカー、END_DATE、cur_date)選択t.ticker、t.end_date、prochart.symbol_list Tここでティッカー= Tからt.cur_dateに挿入します。ティッカーとt.ticker = 'MAY17'重複キーの更新end_date = t.end_date、cur_date = t.cur_date;

誰でも私の質問で何が間違っているか教えてください。

+0

エラーメッセージが表示されますか? –

+0

私はあなたを再現できません、問題クエリ1は私のためにうまく動作します。テーブル定義を公開してください。 –

答えて

0

あなたは試みることができる:

INSERT INTO backup_prochart.symbol_list (ticker, end_date, cur_date) 
SELECT ticker, end_date, cur_date FROM prochart.symbol_list WHERE ticker = 'MAY17' 
ON DUPLICATE KEY UPDATE end_date = values(end_date), cur_date = values(cur_date); 

もちろんコラム「ティッカーは、」表「backup_prochart.symbol_list」のためのユニークとして定義する必要があります。

0

レコードを更新しようとしていますが、INSERTステートメントを使用しているとします。 INSERTの代わりにUPDATEを使用してはいけませんか? INSERTUPDATE

違いは、単一のクエリでUPDATESELECTを使用することができますhere

ノートを見つけることができます。

+0

私は挿入や更新のいずれかになる行がたくさんあるので、リアルタイムの状況に依存します。それらのすべてに対して更新を使用することはできません。私の場合は特に役に立ちません。 – VasaraBharat

0

これを試してください。それは私のために働いた。

employee_projectsへの挿入(EMPLOYEE_ID、proj_ref_code) 選択ep.employee_id、存在しないhs_hr_emp_projects_history EP からep.proj_ref_code( はemployee_projects Pここep.employee_id = p.employee_idから1を選択し、ep.proj_ref_code = P。 proj_ref_code )

関連する問題