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...