Mysql
 sql >> база данни >  >> RDS >> Mysql

Трябва ли едно изброяване в MySQL да НЕ е NULL?

MySQL ще позволи стойността да бъде NULL, ако не посочите NOT NULL в дефиницията на колоната.

Ето един бърз тест:

mysql> create table test (id serial, field ENUM('Y','N') DEFAULT 'N');
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO test (field) VALUES ('Y');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test (field) VALUES ('N');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test () VALUES ();
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test (field) VALUES (NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test (field) VALUES ('Invalid');
Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> show warnings;
+---------+------+--------------------------------------------+
| Level   | Code | Message                                    |
+---------+------+--------------------------------------------+
| Warning | 1265 | Data truncated for column 'field' at row 1 | 
+---------+------+--------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from test;
+----+-------+
| id | field |
+----+-------+
|  1 | Y     | 
|  2 | N     | 
|  3 | N     | 
|  4 | NULL  | 
|  5 |       | 
+----+-------+
5 rows in set (0.00 sec)

Така че MySQL уважава стойността по подразбиране, но също така позволява NULL. (Интересно е, че ще съкрати невалидни стойности и ще позволи празни низове, но това е различен проблем)



  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++/SIFT/SQL - Ако има начин да се сравни ефективно SIFT дескриптор на изображение със SIFT дескриптор в SQL база данни?

  2. моята sql най-добра практика с php за броене на редове

  3. Mysql group_concat със суми също вътре

  4. Дефинирайте набор от промени за заявка за вмъкване в liquibase

  5. използвайки sql union на същата таблица в заявката за намиране на cakephp