2017-07-28 68 views
0

我想在MySQL的重複記錄更新,INSERT INTO選擇上的重複MySQL查詢

我有很多列的表,但我想更新只用同一遞減一些從另一個表列當前表,但它不更新記錄。

我的查詢是:

插入到backup_prochart.symbol_list(股票,結束日期,cur_date) 選擇斷續器,t.end_date,t.cur_date從prochart.symbol_list t其中 股票= t.ticker和ticker ='MAY17'重複密鑰更新 end_date = t.end_date,cur_date = t.cur_date;

另一個查詢我試圖

插入到backup_prochart.symbol_list(股票,結束日期,cur_date)選擇t.ticker,t.end_date,t.cur_date從prochart.symbol_list t其中股票=噸。 ticker和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語句。你不應該使用UPDATE而不是INSERTINSERTUPDATE之間

差異,可以發現here

請注意,您可以在一個查詢中使用UPDATESELECT

+0

先生有很多行要插入或更新取決於實時情況我不能使用它們的更新。所以它可能無助於我的情況。 – VasaraBharat

0

試試這個。它爲我工作。

插入employee_projects(EMPLOYEE_ID,proj_ref_code) 選擇ep.employee_id,ep.proj_ref_code從hs_hr_emp_projects_history EP 其中不存在( 從employee_projects p其中ep.employee_id = p.employee_id和ep.proj_ref_code = P選擇1。 proj_ref_code )