Baseret på min forskning vil jeg sige, at det både kunne være en "dig" ting og en "MySQL" ting. Tjek dine tabeldefinitioner med SHOW CREATE TABLE table_name;
. Bemærk alle felter, der er defineret med NOT NULL
.
MySQL 5.6 Reference Manual:13.2.5 INSERT syntaks siger:
Dette ville betyde, at det er ligegyldigt, hvilken SQL-tilstand du bruger. Hvis du laver en enkelt række INSERT
(i henhold til din eksempelkode) og indsættelse af en NULL
værdi i en kolonne defineret med NOT NULL
, det er ikke meningen at det skal virke.
I samme åndedrag, ironisk nok, hvis du blot skulle udelade værdien fra værdilisten, siger MySQL-manualen følgende, og SQL-tilstanden betyder noget i dette tilfælde:
Derfor kan du ikke vinde!;-) sjov. Det man skal gøre er at acceptere den NOT NULL
på et MySQL-tabelfelt betyder virkelig Jeg vil ikke acceptere en NULL-værdi for et felt, mens jeg udfører en enkelt række INSERT
, uanset SQL-tilstand .'
Når det er sagt, er følgende fra manualen også sandt:
Så tag mod. Indstil dine standardindstillinger i forretningslogikken (objekter), og lad datalaget tage retning fra det. Databasestandarder virker som en god idé, men hvis de ikke eksisterede, ville du så savne dem? Hvis et træ falder i skoven...