我正在尝试更新MySQL中的重复记录,
我有一个包含许多列的表但我想只更新另一个表中与某个desc相同的列,但它不会更新记录。
我的查询是:
插入backup_prochart.symbol_list(ticker,end_date,cur_date) 从prochart.symbol_list t中选择ticker,t.end_date,t.cur_date ticker = t.ticker和ticker =' MAY17'重复密钥更新 END_DATE = t.end_date,cur_date = t.cur_date;
我试过的另一个查询
插入backup_prochart.symbol_list(ticker,end_date,cur_date)从prochart.symbol_list t中选择t.ticker,t.end_date,t.cur_date,其中ticker = t.ticker和t.ticker =' MAY17&#39 ; on duplicate key update end_date = t.end_date,cur_date = t.cur_date;
有谁能告诉我我的查询有什么问题。?
答案 0 :(得分:0)
您说您正在尝试更新记录,但您使用的是INSERT
语句。您不应该使用UPDATE
而不是INSERT
吗?
可以找到INSERT
和UPDATE
之间的差异here
请注意,您可以在一次查询中使用UPDATE
和SELECT
。
答案 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"。
答案 2 :(得分:0)
试试这个。它对我有用。
插入employee_projects(employee_id,proj_ref_code) 从hs_hr_emp_projects_history ep中选择ep.employee_id,ep.proj_ref_code 哪里不存在( 从employee_projects p中选择1,其中ep.employee_id = p.employee_id和ep.proj_ref_code = p.proj_ref_code )