sql >> Databasteknik >  >> RDS >> Mysql

MySQL #1364 - Fältet "kolumnnamn" har inte ett standardvärde - Kan inte infogas i DB

Det sparas inte i databasen definitivt eftersom fältet 'kolumnnamn' (och kanske några andra) är markerat som "NOT NULL". Det betyder att värdet på det fältet måste vara något annat än NULL (NULL - inga data alls)

Att markera fält som inte null är vanligtvis ett bra sätt att säkerställa att viss data alltid finns i fältet. Beroende på dina behov kan du också markera det som NULL så att det aldrig ger ett fel och sparas i DB utan att något behöver infogas i ett specificerat fält.

Det betyder att du har två alternativ:

  1. Markera ditt fält som NULL (kontrollera först om ditt fält måste ha något värde eller inte).

    ALTER TABLE `your_table` 
    CHANGE COLUMN `your_field` `your_field` VARCHAR(250) NULL;
    
  2. Lägg till ett standardvärde i fältet så att om ingen data tillhandahålls vid infogning kommer det att lägga till något du definierat. Till exempel:

    ALTER TABLE `your_table` CHANGE COLUMN `your_field` `your_field` VARCHAR(250) NOT NULL DEFAULT 'some_default_value';
    

Och naturligtvis, matcha din fälttyp med fältet du ska ändra.




  1. PDO::FETCH_ASSOC hämtar inte allt

  2. Komprimera text innan den lagras i databasen

  3. SQLite3.Undantag:databasdiskbilden är felaktig

  4. Ska jag använda !=eller <> för inte lika i T-SQL?