INSERT INTO选择上的重复MySQL查询

INSERT INTO选择上的重复MySQL查询

问题描述:

我想在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对我来说工作正常。你可以发表你的表格定义吗? –

你可以尝试:

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”。

您说您试图更新记录,但是您使用INSERT语句。你不应该使用UPDATE而不是INSERTINSERTUPDATE之间

差异,可以发现here

请注意,您可以在一个查询中使用UPDATESELECT

+0

先生有很多行要插入或更新取决于实时情况我不能使用它们的更新。所以它可能无助于我的情况。 – VasaraBharat

试试这个。它为我工作。

插入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 )