2017-02-17 2 views
2

Je cherche quelque chose similaire-MYSQL insertion en bloc si existe pas mise à jour si elle existe

insert into table1(a, b, c) 
select col1 as d, col2 as e, col3 as f from table2 
on duplicate key update b = e, c = f; 

NOTE - Ici table1.a est la clé unique.

Je reçois une erreur - Nom de colonne inconnu 'e'.

Existe-t-il une solution pour utiliser 'Sur clé dupliquée' avec l'instruction 'Insérer dans Select'?

Merci!

Répondre

2

Confusion causée par l'utilisation d'alias

insert into table1(a, b, c) 
select col1 as d, col2 as e, col3 as f from table2 
on duplicate key update b = table2.col2, c = table2.col3; 
+0

même erreur .... nom de Unknown column 'e' – Abhi

+0

Oui, je l'ai essayé à la fois ... Sa ne fonctionne pas. Et je veux mettre à jour les données de la table 2 dans la table1, ainsi la valeur (a) et la valeur (b) ne fonctionneront pas. – Abhi

+0

Oui..J'ai essayé aussi ... Ne fonctionne pas. son montrant la même erreur – Abhi