phpMyAdmin
 sql >> Database >  >> Database Tools >> phpMyAdmin

Qual è il valore predefinito per un campo se non viene fornito alcun valore predefinito?

Facendo riferimento al manuale ,

Per l'immissione di dati per una colonna NOT NULL che non ha una clausola DEFAULT esplicita, se un'istruzione INSERT o REPLACE non include alcun valore per la colonna o un'istruzione UPDATE imposta la colonna su NULL, MySQL gestisce la colonna in base alla modalità SQL in vigore al momento:

  • Se la modalità SQL rigorosa non è abilitata, MySQL imposta la colonna sul valore predefinito implicito per il tipo di dati della colonna.
  • Se la modalità rigorosa è abilitata, si verifica un errore per le tabelle transazionali e viene eseguito il rollback dell'istruzione. Per le tabelle non transazionali, si verifica un
    errore, ma se ciò si verifica per la seconda riga o la successiva di un'istruzione a più righe, le righe precedenti saranno state inserite.

Quindi la tua domanda ora potrebbe essere:quali sono i valori predefiniti impliciti per i vari tipi di dati di colonna? Ecco a te:

Le impostazioni predefinite implicite sono definite come segue:

  • Per i tipi numerici, il valore predefinito è 0, con l'eccezione che per i tipi interi oa virgola mobile dichiarati con l'attributo AUTO_INCREMENT
    , il valore predefinito è il valore successivo nella sequenza.
  • Per tipi di data e ora diversi da TIMESTAMP, il valore predefinito è il valore "zero" appropriato per il tipo. Per la prima colonna TIMESTAMP di una tabella, il valore predefinito è la data e l'ora correnti. Vedere Sezione 10.3, "Tipi di data e ora".
  • Per tipi di stringa diversi da ENUM, il valore predefinito è la stringa vuota. Per ENUM, il valore predefinito è il primo valore di enumerazione.