Mysql
 sql >> Base de données >  >> RDS >> Mysql

INSÉRER DANS ... SÉLECTIONNER À PARTIR DE ... SUR LA MISE À JOUR DE LA CLÉ EN DOUBLE

MySQL supposera que la partie avant le signe égal fait référence aux colonnes nommées dans la clause INSERT INTO, et la deuxième partie fait référence aux colonnes SELECT.

INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, 
                inact, inadur, inadist, 
                smlct, smldur, smldist, 
                larct, lardur, lardist, 
                emptyct, emptydur)
SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, 
       t.inact, t.inadur, t.inadist, 
       t.smlct, t.smldur, t.smldist, 
       t.larct, t.lardur, t.lardist, 
       t.emptyct, t.emptydur 
FROM tmp t WHERE uid=x
ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, ...