Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chèn giá trị mặc định vào cột NOT NULL khi giá trị là NULL trong MySQL

Để chèn giá trị mặc định vào cột NOT NULL khi giá trị đầu vào là NULL, bạn có thể sử dụng hàm IF() kết hợp IS NULL hoặc IFNULL().

Cú pháp

INSERT INTO ten_bang(cot1, cot2) VALUES('gia_tri', IF(cot1 IS NULL, DEFAULT(cot2), 'thong_bao'));

Ví dụ minh họa

Tạo bảng với cột UserPostMessage có DEFAULT:

mysql> CREATE TABLE Post (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName VARCHAR(10),
    -> UserPostMessage VARCHAR(50) NOT NULL DEFAULT 'Hi Good Morning !!!'
    -> );

Chèn dữ liệu sử dụng IF:

mysql> INSERT INTO Post(UserName, UserPostMessage) 
    -> VALUES('John', IF(UserName IS NULL, DEFAULT(UserPostMessage), 'Hello'));
mysql> INSERT INTO Post(UserName, UserPostMessage) 
    -> VALUES(NULL, IF(UserName IS NULL, DEFAULT(UserPostMessage), 'Hello'));
mysql> INSERT INTO Post(UserName, UserPostMessage) 
    -> VALUES('Carol', IF(UserName IS NULL, DEFAULT(UserPostMessage), 'Hello'));

Kết quả:

+----+----------+---------------------+
| Id | UserName | UserPostMessage     |
+----+----------+---------------------+
|  1 | John     | Hello               |
|  2 | NULL     | Hi Good Morning !!! |
|  3 | Carol    | Hello               |
+----+----------+---------------------+

Khi UserName là NULL, cột UserPostMessage nhận giá trị mặc định 'Hi Good Morning !!!'. Ngược lại, nhận giá trị 'Hello'.