2012-09-10 21 views
6

Recentemente ho affrontato un nuovo problema in mysql. Stavo per creare una nuova tabella con col1 timestamp default null column having default null value, ma durante la creazione che mi ha dato l'errore di valore predefinito non valido per la colonna. Ma quando ho provato col1 timestamp null default null, quella tabella è stata creata.Differenza tra null default null e default null in mysql?

Voglio sapere qual è la differenza tra due sintassi di cui sopra. Ho anche affrontato questo problema in precedenza in alcuni valori null di inserimento nella colonna.

Qualcuno può spiegare questo problema che si tratta di problema specifico della versione o altro con mysql.

+0

Se si dispone solo di 'col1 timestamp null', il' default null' può essere omesso (almeno secondo la documentazione). Una colonna timestamp non annullabile ha proprietà speciali predefinite, ma vengono soppresse quando si rende esplicitamente nullable la colonna. – hvd

risposta

9

Il primo "null" indica che la colonna è annullabile, vale a dire accetta nullo. Il secondo "null" (dopo l'impostazione predefinita) è il valore predefinito.

Se si dispone solo del valore predefinito, ma la colonna rifiuta i valori null, non è possibile utilizzare tale valore predefinito.

(Ho avuto l'impressione, tuttavia, che se non si specifica né NULLNOT NULL che la colonna fosse annullabile, quindi quello che si vede è un po 'di confusione).

Problemi correlati