Ако трябва да зададете MySQL колона да не приема нулеви стойности, тогава можете да добавите ограничение NOT NULL в MySQL. Можете да добавите ограничение NOT NULL, когато създавате таблица на таблица, използвайки оператор CREATE TABLE, или да добавите ограничение NOT NULL в съществуваща таблица, като използвате оператор ALTER TABLE. Ето как да добавите ограничение NOT NULL в MySQL.
Как да добавите ограничение NOT NULL в MySQL
Ето стъпките за добавяне на ограничение NOT NULL за колона в MySQL, добавяне на ограничение NOT NULL към съществуваща колона и премахване на ограничение NOT NULL от колона.
Ето синтаксиса за дефиниране на ограничение NOT NULL в MySQL, когато създавате нова таблица.
column_name data_type NOT NULL;
В горното изявление трябва да посочите NOT NULL, след като споменавате име_на_колона и неговия тип_данни
Ето пример за добавяне на ограничение NOT NULL в 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
В горната заявка CREATE TABLE добавихме ограничение NOT NULL за количество колона. Когато вмъкнете стойност NULL в тази колона, MySQL ще даде грешка.
Бонус за четене:Как да добавя ограничение по подразбиране в MySQL
ALTER TABLE Добавете ограничение NOT NULL в MySQL
Можете също да добавите ограничение NOT NULL към съществуваща колона в MySQL, като използвате оператор ALTER TABLE ... CHANGE. Ето синтаксиса за добавяне на ненулево ограничение в съществуващата таблица в MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
В горната заявка споменаваме едно и също име на колона за old_column_name, както и за new_column_name. New_column_name трябва да бъде последвано от неговата column_definition за тип данни и ключова дума NOT NULL.
Ето пример за SQL заявка за добавяне на ограничение NOT NULL към съществуваща колона в 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 | | +------------+---------+------+-----+---------+-------+
В горната заявка добавихме ограничение NOT NULL към съществуващата колона order_date
Бонус за четене:MySQL Изберете Топ N реда на група
Как да премахнете ограничението NOT NULL
Можете също да махнете ограничението NOT NULL, като използвате оператор ALTER TABLE ... MODIFY. Ето синтаксиса за премахване на ограничението NOT NULL в MySQL.
ALTER TABLE table_name MODIFY column_name column_definition;
В горната заявка трябва да посочите името на колоната и дефиницията, за които искате да премахнете ограничението NOT NULL.
Ето пример за премахване на ограничението NOT NULL за order_date колона.
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 | | +------------+---------+------+-----+---------+-------+
Бонус четене:Как да получите данни от миналата седмица в MySQL
Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!