Desde las sintaxis son equivalentes (en MySQL de todos modos), prefiero la sintaxis INSERT INTO table SET x=1, y=2
, ya que es más fácil de modificar y más fáciles de detectar errores en la declaración, sobre todo cuando insertando muchas columnas Si tiene que insertar 10 o 15 o más columnas, es realmente fácil mezclar algo usando la sintaxis (x, y) VALUES (1,2)
, en mi opinión.
Si la portabilidad entre diferentes estándares SQL es un problema, entonces quizás se prefiera INSERT INTO table (x, y) VALUES (1,2)
.
Y si quiere insertar múltiples registros en una sola consulta, no parece que la sintaxis INSERT INTO ... SET
funcionará, mientras que la otra lo hará. Pero, en la mayoría de los casos prácticos, está recorriendo un conjunto de registros para hacer inserciones de todos modos, aunque podría haber algunos casos en los que tal vez construir una consulta grande para insertar un grupo de filas en una tabla en una consulta, frente a una consulta de cada fila, puede tener una mejora en el rendimiento. Realmente no lo se.
Después de leer Code Complete y el constante énfasis de McConnell en la legibilidad, parece desafortunado que 'INSERT INTO table SET' no sea estándar. Parece mucho más claro. Creo que tendré que usar la sintaxis 'INSERT INTO table ([nombre de columna, nombre de columna b]) VALUES (['value a', 'value b'])' de todos modos para evitar problemas si cambio de puerto a Postgres. – cluelesscoder
¡Esta pregunta se ha vuelto viral como el video de Kanye! – aMazing