Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thêm Ràng buộc NOT NULL trong MySQL

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 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!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CẬP NHẬT MySQL và CHỌN trong một lần vượt qua

  2. mysql Ràng buộc khóa ngoại bị lỗi hình thành không chính xác

  3. Tính toán decile trong MySQL dựa trên tổng số

  4. Làm thế nào để đồng bộ cơ sở dữ liệu SQLite trên điện thoại Android với cơ sở dữ liệu MySQL trên máy chủ?

  5. Kết nối Visual COBOL với MySQL