2010-08-16 12 views
11

Ho una tabella con le seguenti colonne:Come inserire una nuova riga nel database con la colonna AUTO_INCREMENT senza specificare i nomi delle colonne?

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

so che posso aggiungere una riga come questa:

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

Mi chiedo se sia possibile aggiungere una riga senza specificare i nomi delle colonne, come quando non c'è una colonna AUTO_INCREMENT?

risposta

14

Per alcuni database, si può semplicemente inserire esplicitamente un NULL nella colonna auto_increment:

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

Grande! Molte grazie !! –

+8

Tuttavia, questa è una pratica estremamente negativa e non dovrebbe essere eseguita. Dovresti sempre inserire istruzioni di inserimento con i nomi delle colonne altrimenti se le colonne vengono riordinate in qualche modo, inserirai i dati nella colonna sbagliata. Se viene aggiunta un'altra colonna, l'inserimento fallirà. Non posso enfatizzare abbastanza quanto sia scarsa questa pratica. Puoi distruggere l'integrità dei tuoi dati a causa di un po 'di pigrizia. E onestamente, dal momento che puoi trascinare e drogare i nomi delle colonne dal browser degli oggetti, stiamo parlando di rischiare i tuoi dati perché sei troppo pigro per dedicare un minuto in più a un'attività. – HLGEM

+0

OK, grazie per il consiglio! –

1

Basta aggiungere i nomi delle colonne, sì, si può utilizzare Null invece, ma è una pessima idea di non usare colonna nomi in qualsiasi inserto, mai.

8

Ancora meglio, utilizzare DEFAULT anziché NULL. Si desidera memorizzare il valore predefinito, non un valore NULL che potrebbe attivare un valore predefinito.

Ma è meglio nominare tutte le colonne, con un pezzo di SQL è possibile creare tutte le INSERT, UPDATE e DELETE di cui si ha bisogno. Basta controllare il information_schema e costruire le query che ti servono. Non è necessario eseguire tutto manualmente, SQL può aiutarti.

+0

Questo è stato utile per Postgres. Usando un risultato NULL in 'ERRORE: il valore nullo nella colonna" id "viola il vincolo not-null' – Meredith

Problemi correlati