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!