Nếu bạn cần đặt một cột MySQL để không chấp nhận các giá trị null, thì bạn có thể thêm ràng buộc NOT NULL trong MySQL. Bạn có thể thêm ràng buộc NOT NULL khi tạo bảng bảng bằng cách sử dụng câu lệnh CREATE TABLE hoặc thêm ràng buộc NOT NULL trong bảng hiện có bằng câu lệnh ALTER TABLE. Đây là cách thêm ràng buộc NOT NULL trong MySQL.
Cách thêm Ràng buộc NOT NULL trong MySQL
Dưới đây là các bước để thêm ràng buộc NOT NULL cho cột trong MySQL, thêm ràng buộc NOT NULL vào cột hiện có và xóa ràng buộc NOT NULL khỏi cột.
Đây là cú pháp để xác định ràng buộc NOT NULL trong MySQL khi bạn tạo bảng mới.
column_name data_type NOT NULL;
Trong câu lệnh trên, bạn cần chỉ định NOT NULL sau khi đề cập đến tên_mạch và data_type của nó
Dưới đây là một ví dụ để thêm ràng buộc NOT NULL trong 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
Trong truy vấn CREATE TABLE ở trên, chúng tôi đã thêm một ràng buộc NOT NULL cho số tiền cột. Khi bạn chèn giá trị NULL vào cột này, MySQL sẽ báo lỗi.
Phần thưởng Đọc:Cách thêm Ràng buộc Mặc định trong MySQL
ALTER TABLE Thêm ràng buộc NOT NULL trong MySQL
Bạn cũng có thể thêm ràng buộc NOT NULL vào cột hiện có trong MySQL bằng cách sử dụng câu lệnh ALTER TABLE… CHANGE. Đây là cú pháp để thêm ràng buộc not null trong bảng hiện có trong MySQL.
ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;
Trong truy vấn trên, chúng tôi đề cập đến cùng một tên cột cho old_column_name cũng như new_column_name. Theo sau tên_column_name mới là cột_định nghĩa kiểu dữ liệu và từ khoá KHÔNG ĐẦY ĐỦ.
Dưới đây là một ví dụ về truy vấn SQL để thêm ràng buộc NOT NULL vào cột hiện có trong 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 | | +------------+---------+------+-----+---------+-------+
Trong truy vấn trên, chúng tôi đã thêm ràng buộc NOT NULL vào cột order_date hiện có
Phần thưởng đã đọc:MySQL Chọn N hàng đầu cho mỗi nhóm
Cách loại bỏ ràng buộc NOT NULL
Bạn cũng có thể loại bỏ ràng buộc NOT NULL bằng cách sử dụng câu lệnh ALTER TABLE… MODIFY. Đây là cú pháp để loại bỏ ràng buộc NOT NULL trong MySQL.
ALTER TABLE table_name MODIFY column_name column_definition;
Trong truy vấn trên, bạn cần chỉ định tên và định nghĩa cột mà bạn muốn loại bỏ ràng buộc NOT NULL.
Dưới đây là một ví dụ để loại bỏ ràng buộc NOT NULL cho order_date cột.
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 | | +------------+---------+------+-----+---------+-------+
Phần thưởng đã đọc:Cách nhận dữ liệu tuần trước trong MySQL
Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!