Om du behöver ställa in en MySQL-kolumn så att den inte accepterar null-värden, kan du lägga till NOT NULL-begränsning i MySQL. Du kan lägga till NOT NULL-begränsning när du skapar tabelltabell med CREATE TABLE-satsen, eller lägga till NOT NULL-begränsning i befintlig tabell med ALTER TABLE-satsen. Så här lägger du till NOT NULL-begränsning i MySQL.
Hur man lägger till NOT NULL-begränsning i MySQL
Här är stegen för att lägga till NOT NULL-begränsning för kolumn i MySQL, lägga till NOT NULL-begränsning till befintlig kolumn och ta bort NOT NULL-begränsning från en kolumn.
Här är syntaxen för att definiera NOT NULL-begränsningen i MySQL när du skapar en ny tabell.
column_name data_type NOT NULL;
I ovanstående uttalande måste du ange NOT NULL efter att ha nämnt kolumnnamn och dess data_type
Här är ett exempel för att lägga till NOT NULL-begränsning i MySQL.
mysql> create table product_sales( id int, amount int NOT NULL, order_date date ); mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | YES | | NULL | | +------------+---------+------+-----+---------+-------+ mysql> insert into product_sales(id, order_date) values(1,'2020-08-01'); ERROR 1364 (HY000): Field 'amount' doesn't have a default value
I CREATE TABLE-frågan ovan har vi lagt till en NOT NULL-begränsning för belopp kolumn. När du infogar ett NULL-värde i den här kolumnen kommer MySQL att ge ett felmeddelande.
Bonusläsning:Hur man lägger till standardbegränsning i MySQL
ALTER TABLE Lägg till NOT NULL-begränsning i MySQL
Du kan också lägga till NOT NULL-begränsning till befintlig kolumn i MySQL med ALTER TABLE … CHANGE-satsen. Här är syntaxen för att lägga till inte null-begränsning i befintlig tabell i MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
I ovanstående fråga nämner vi samma kolumnnamn för gammalt_kolumnnamn såväl som nytt_kolumnnamn. New_column_name måste följas av dess column_definition av datatyp och INTE NULL nyckelord.
Här är ett exempel på SQL-fråga för att lägga till NOT NULL-begränsning till befintlig kolumn i MySQL.
mysql> ALTER TABLE product_sales CHANGE order_date order_date DATE NOT NULL; mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | NO | | NULL | | +------------+---------+------+-----+---------+-------+
I ovanstående fråga har vi lagt till NOT NULL-begränsning i befintlig kolumn order_date
Bonusläsning:MySQL Välj Top N rader per grupp
Hur man släpper NOT NULL-begränsningen
Du kan också släppa NOT NULL-begränsningen genom att använda ALTER TABLE ... MODIFY-satsen. Här är syntaxen för att ta bort NOT NULL-begränsningen i MySQL.
ALTER TABLE table_name MODIFY column_name column_definition;
I ovanstående fråga måste du ange kolumnnamnet och definitionen för vilken du vill ta bort NOT NULL-begränsningen.
Här är ett exempel för att ta bort NOT NULL-begränsningen för order_date kolumn.
mysql> ALTER TABLE product_sales MODIFY order_date DATE; mysql> describe product_sales; +------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | amount | int(11) | NO | | NULL | | | order_date | date | YES | | NULL | | +------------+---------+------+-----+---------+-------+
Bonusläs:Hur man får förra veckans data i MySQL
Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!