2010-08-16 10 views
11

Tengo una tabla con las siguientes columnas:¿Cómo insertar una nueva fila en la base de datos con la columna AUTO_INCREMENT sin especificar los nombres de las columnas?

  • id - unsigned int AUTO_INCREMENT
  • name - VARCHAR (20)
  • group - VARCHAR (20)

sé que puedo agregar una fila como esta:

INSERT INTO table_name (name, group) VALUES ('my name', 'my group') 

Me pregunto si hay una manera de agregar una fila sin especificar los nombres de columna, como cuando no hay una columna AUTO_INCREMENT?

Respuesta

14

Para algunas bases de datos, sólo puede insertar explícitamente un NULL en la columna de la auto_increment:

INSERT INTO table_name VALUES (NULL, 'my name', 'my group') 
+0

¡Genial! Muchas gracias !! –

+8

Sin embargo, esta es una práctica extremadamente mala y no debe hacerse. Siempre debe insertar enunciados con los nombres de columna de otra manera si las columnas se reorganizan de alguna manera, colocará los datos en la columna incorrecta. Si se agrega otra columna, la inserción fallará. No puedo enfatizar lo pobre que es esta práctica. Puede destruir su integridad de datos debido a un poco de pereza. Y sinceramente, ya que puede arrastrar y anotar los nombres de las columnas desde el navegador de objetos, estamos hablando de arriesgar sus datos porque era demasiado perezoso para gastar un minuto extra en una tarea. – HLGEM

+0

OK, ¡gracias por el consejo! –

1

Apenas añada los nombres de columna, sí puede utilizar Null lugar, pero es una muy mala idea de no utilizar la columna nombres en cualquier inserción, alguna vez.

8

Mejor aún, use DEFAULT en lugar de NULO. Desea almacenar el valor predeterminado, no un NULL que podría desencadenar un valor predeterminado.

Pero será mejor que nombre todas las columnas, con un poco de SQL puede crear todas las INSERT, UPDATE y DELETE que necesite. Simplemente marque information_schema y construya las consultas que necesita. No hay necesidad de hacerlo todo a mano, SQL puede ayudarte.

+0

Esto fue útil para Postgres. Usar un NULL da como resultado 'ERROR: valor nulo en la columna" id "viola la restricción no nula – Meredith

Cuestiones relacionadas