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

Indsættelse af NULL i NOT NULL-kolonner med standardværdi

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



  1. Hvordan ved du, hvad et godt indeks er?

  2. Erstat enkelte anførselstegn i SQL Server

  3. Opdater flere kolonner i MERGE-sætning ORACLE

  4. Kan ikke åbne SQLite-database fra SQLIte Helper Oncreate, når OnCreate udløses ved at åbne databasen for første gang