He buscado pero no he encontrado si es posible.
Tengo esta consulta MySQL:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
La identificación de campo tiene un "índice único", por lo que no puede haber dos. Ahora, si la misma identificación ya está presente en la base de datos, me gustaría actualizarla. Pero, ¿realmente tengo que especificar todos estos campos nuevamente, como:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=2,b=3,c=4,d=5,e=6,f=7,g=8
O:
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c),d=VALUES(d),e=VALUES(e),f=VALUES(f),g=VALUES(g)
Ya especifiqué todo en el inserto ...
¡Una nota adicional, me gustaría usar el trabajo para obtener la identificación!
id=LAST_INSERT_ID(id)
Espero que alguien pueda decirme cuál es la forma más eficiente.
a=VALUES(a), b=VALUES(b), ...
es el camino que debe seguir. Así es como lo hago para todas misINSERT ON DUPLICATE KEY UPDATE
declaraciones.