Mysql
 sql >> Database >  >> RDS >> Mysql

Inserimento di NULL in colonne NOT NULL con valore predefinito

Sulla base della mia ricerca, direi che potrebbe essere sia una cosa "tu" che una cosa "MySQL". Controlla le definizioni della tabella con SHOW CREATE TABLE table_name; . Prendi nota di tutti i campi definiti con NOT NULL .

Il Manuale di riferimento di MySQL 5.6:13.2.5 INSERT syntax afferma:

Ciò implicherebbe che non importa quale modalità SQL stai utilizzando. Se stai facendo una riga singola INSERT (come da codice di esempio) e inserendo un NULL valore in una colonna definita con NOT NULL , non dovrebbe funzionare.

Allo stesso tempo, ironia della sorte, se dovessi semplicemente omettere il valore dall'elenco dei valori, il manuale di MySQL dice quanto segue e la modalità SQL è importante in questo caso:

Quindi, non puoi vincere!;-) Prendendo in giro. La cosa da fare è accettare quel NOT NULL su un campo di una tabella MySQL significa davvero Non accetterò un valore NULL per un campo durante l'esecuzione di una singola riga INSERT , indipendentemente dalla modalità SQL .'

Detto questo, vale anche quanto segue dal manuale:

Quindi, fatti coraggio. Imposta le tue impostazioni predefinite nella logica aziendale (oggetti) e lascia che il livello dati prenda la direzione da quello. Le impostazioni predefinite del database sembrano una buona idea, ma se non esistessero, ti mancherebbero? Se un albero cade nella foresta...