2017-07-28 4 views
0

Je suis en train de mettre à jour le dossier en double dans MySQL,insert en sélection sur requête en double mysql

J'ai une table avec plusieurs colonnes, mais je veux mettre à jour seulement une colonne d'une autre table avec la même desc que la table en cours, mais il ne met pas à jour les enregistrements.

ma requête est:

insert dans backup_prochart.symbol_list (ticker, date_fin, cur_date) ticker select, t.end_date, t.cur_date de prochart.symbol_list t où ticker = t.ticker et ticker = 'MAY17' lors de la mise à jour de la clé en double end_date = t.end_date, cur_date = t.cur_date;

une autre requête i essayé

insert dans backup_prochart.symbol_list (ticker, end_date, cur_date) sélectionner t.ticker, t.end_date, t.cur_date de prochart.symbol_list t où ticker = t. ticker et t.ticker = 'MAY17' lors de la mise à jour de la clé en double end_date = t.end_date, cur_date = t.cur_date;

quelqu'un peut-il me dire ce qui ne va pas avec ma requête.?

+0

Un message d'erreur s'affiche? –

+0

Je ne peux pas reproduire votre problème, la requête 1 fonctionne très bien pour moi. Pouvez-vous publier vos définitions de table s'il vous plaît. –

Répondre

0

Vous pouvez essayer:

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); 

Bien sûr, la colonne "ticker" doit être défini comme unique pour la table "backup_prochart.symbol_list".

0

Vous dites que vous essayez de mettre à jour un enregistrement, mais que vous utilisez une instruction INSERT. Vous ne devriez pas utiliser UPDATE au lieu de INSERT?

Différence entre INSERT et UPDATE se trouve here

Notez que vous pouvez utiliser UPDATE et SELECT dans une seule requête.

+0

monsieur il ya beaucoup de lignes à insérer ou mise à jour dépend de la situation en temps réel je ne peux pas utiliser la mise à jour pour tous. donc ça pourrait ne pas être utile spécialement dans mon cas. – VasaraBharat

0

essayez ceci. Cela a fonctionné pour moi.

Insert into employee_projects (employe_id, proj_ref_code) select ep.employee_id, ep.proj_ref_code de hs_hr_emp_projects_history ep où existe pas ( sélectionner une de employee_projects p où ep.employee_id = p.employee_id et ep.proj_ref_code = p. proj_ref_code )