Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để có thể chèn một số 0 hoặc một chuỗi trống vào một cột MySQL được định nghĩa là KHÔNG ĐẦY ĐỦ?


Khai báo cột ‘NOT NULL’ có nghĩa là cột này sẽ không chấp nhận các giá trị NULL nhưng không (0) và bản thân một chuỗi trống là một giá trị. Do đó, sẽ không có vấn đề gì nếu chúng ta muốn chèn số không hoặc một chuỗi trống vào một cột MySQL được định nghĩa là KHÔNG ĐỦ. Sau đây so sánh 0 và chuỗi rỗng với NULL sẽ làm rõ ràng hơn -

mysql> Select 0 IS NULL, 0 IS NOT NULL;
+-----------+---------------+
| 0 IS NULL | 0 IS NOT NULL |
+-----------+---------------+
|         0 |             1 |
+-----------+---------------+
1 row in set (0.00 sec)

Tập kết quả trên cho thấy không (0) không phải là NULL. Bản thân nó có nghĩa là không (0) là một giá trị vì như chúng ta biết rằng NULL có nghĩa là KHÔNG CÓ GIÁ TRỊ.

mysql> Select '' IS NULL, '' IS NOT NULL;
+------------+----------------+
| '' IS NULL | '' IS NOT NULL |
+------------+----------------+
|          0 |              1 |
+------------+----------------+
1 row in set (0.00 sec)

Tập kết quả trên cho thấy chuỗi rỗng (‘’) không phải là NULL. Nó có nghĩa là chuỗi rỗng (‘’) là một giá trị vì như chúng ta biết rằng NULL có nghĩa là KHÔNG CÓ GIÁ TRỊ.

Ví dụ

mysql> create table test(id int NOT NULL, Name Varchar(10));
Query OK, 0 rows affected (0.19 sec)

mysql> Insert into test6(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav');
Query OK, 3 rows affected, 1 warning (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 1

Warning (Code 1366): Incorrect integer value: '' for column 'id' at row 3

mysql> Select * from test;
+----+--------+
| id | Name |
+----+--------+
|  1 | Gaurav |
|  0 | Rahul  |
|  0 | Aarav  |
+----+--------+
3 rows in set (0.00 sec)

Từ các tập kết quả ở trên, có thể thấy rằng chúng ta có thể chèn không (0) một chuỗi rỗng (‘’) vào một cột được khai báo là KHÔNG ĐẦY ĐỦ.