sql >> Databasteknik >  >> RDS >> Mysql

Infogar NULL i NOT NULL-kolumner med standardvärde

Baserat på min forskning skulle jag säga att det både kan vara en "du" sak och en "MySQL" sak. Kontrollera dina tabelldefinitioner med SHOW CREATE TABLE table_name; . Notera alla fält som definieras med NOT NULL .

MySQL 5.6 Reference Manual:13.2.5 INSERT syntax står:

Detta skulle innebära att det inte spelar någon roll vilket SQL-läge du använder. Om du gör en enkel rad INSERT (enligt din exempelkod) och infoga en NULL värde till en kolumn definierad med NOT NULL , det är inte tänkt att fungera.

I samma andetag, ironiskt nog, om du helt enkelt skulle utelämna värdet från värdelistan, säger MySQL-manualen följande, och SQL-läget spelar roll i det här fallet:

Du kan alltså inte vinna!;-) Skojar. Saken att göra är att acceptera att NOT NULL på ett MySQL-tabellfält betyder verkligen Jag kommer inte att acceptera ett NULL-värde för ett fält när jag utför en enda rad INSERT , oavsett SQL-läge .'

Med detta sagt är följande från manualen också sant:

Så ta hjärtat. Ställ in dina standardvärden i affärslogiken (objekt) och låt datalagret ta riktning från det. Databasstandarder verkar vara en bra idé, men om de inte fanns, skulle du missa dem? Om ett träd faller i skogen...



  1. Anslut oracle från nodejs

  2. Hur får man MySQL-databasstorlek för din databas?

  3. Hur kan jag utfärda ett enstaka kommando från kommandoraden till sql plus?

  4. PhpStorm kan inte lösa kolumn för flera databasanslutningar