Als u een MySQL-kolom moet instellen om geen null-waarden te accepteren, kunt u de beperking NOT NULL toevoegen in MySQL. U kunt de beperking NOT NULL toevoegen wanneer u een tabeltabel maakt met de instructie CREATE TABLE, of de beperking NOT NULL aan een bestaande tabel toevoegen met de instructie ALTER TABLE. Hier leest u hoe u de NOT NULL-beperking in MySQL kunt toevoegen.
Hoe een NOT NULL-beperking toe te voegen in MySQL
Hier zijn de stappen om de NOT NULL-beperking voor een kolom in MySQL toe te voegen, de NOT NULL-beperking toe te voegen aan een bestaande kolom en de NOT NULL-beperking van een kolom te verwijderen.
Hier is de syntaxis om de beperking NOT NULL in MySQL te definiëren wanneer u een nieuwe tabel maakt.
column_name data_type NOT NULL;
In de bovenstaande verklaring moet u NOT NULL specificeren na het noemen van de column_name en zijn data_type
Hier is een voorbeeld om de beperking NOT NULL toe te voegen in 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
In de bovenstaande CREATE TABLE-query hebben we een NOT NULL-beperking toegevoegd voor bedrag kolom. Wanneer u een NULL-waarde in deze kolom invoegt, geeft MySQL een foutmelding.
Bonus lezen:standaardbeperking toevoegen in MySQL
WIJZIG TABEL Voeg NOT NULL-beperking toe in MySQL
U kunt ook de beperking NOT NULL toevoegen aan een bestaande kolom in MySQL met behulp van de instructie ALTER TABLE ... CHANGE. Hier is de syntaxis om een niet-null-beperking toe te voegen aan een bestaande tabel in MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
In de bovenstaande query vermelden we dezelfde kolomnaam voor oude_kolomnaam en nieuwe_kolomnaam. De new_column_name moet worden gevolgd door de column_definition van het gegevenstype en het NOT NULL-sleutelwoord.
Hier is een voorbeeld van een SQL-query om de beperking NOT NULL toe te voegen aan een bestaande kolom in 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 | | +------------+---------+------+-----+---------+-------+
In de bovenstaande query hebben we de beperking NOT NULL toegevoegd aan de bestaande kolom order_date
Bonus Lezen:MySQL Selecteer Top N Rijen Per Groep
Hoe de NOT NULL-beperking te laten vallen
U kunt de beperking NOT NULL ook laten vallen met de instructie ALTER TABLE ... MODIFY. Hier is de syntaxis om de NOT NULL-beperking in MySQL te verwijderen.
ALTER TABLE table_name MODIFY column_name column_definition;
In de bovenstaande query moet u de kolomnaam en -definitie opgeven waarvoor u de NOT NULL-beperking wilt verwijderen.
Hier is een voorbeeld om de NOT NULL-beperking voor order_date te verwijderen kolom.
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 | | +------------+---------+------+-----+---------+-------+
Bonus lezen:hoe u gegevens van vorige week in MySQL kunt krijgen
Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!