Cần thiết lập sql_mode = 'STRICT_TRANS_TABLES' để cho phép chèn NULL vào cột CHAR(1) (mặc định có thể báo warning). Tạo bảng:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50),
Gender CHAR(1) NULL
); Query OK, 0 rows affected (0.99 sec)
Bật chế độ strict và chèn NULL:
mysql> SET sql_mode = 'STRICT_TRANS_TABLES'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> INSERT INTO DemoTable(Name,Gender) SELECT 'Chris', NULL; Query OK, 1 row affected (0.21 sec) mysql> INSERT INTO DemoTable(Name,Gender) SELECT 'David', NULL; Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO DemoTable(Name,Gender) SELECT 'Mike', 'M'; Query OK, 1 row affected (0.16 sec)
Hiển thị dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả:
+----+-------+--------+ | Id | Name | Gender | +----+-------+--------+ | 1 | Chris | NULL | | 2 | David | NULL | | 3 | Mike | M | +----+-------+--------+ 3 rows in set (0.00 sec)
Lưu ý: Cột CHAR(1) NULL cho phép NULL. Nếu là CHAR(1) NOT NULL thì không chèn được NULL.