Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy wyliczenie w MySQL musi być NIE NULL?

MySQL pozwoli na wartość NULL, jeśli nie określisz NOT NULL w definicji kolumny.

Oto szybki test:

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)

Tak więc MySQL szanuje wartość domyślną, ale dopuszcza również wartości NULL. (Co ciekawe, skróci to nieprawidłowe wartości i zezwoli również na puste ciągi, ale to inny problem)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java:Wstaw wiele wierszy do MySQL za pomocą PreparedStatement

  2. MySQL:wydajne zapytanie w kolumnie zbyt długiej do indeksowania

  3. Uzyskaj nazwę połączonej bazy danych mysql (JDBC)

  4. PHP mysql_num_rows błąd matrycy

  5. Jak zweryfikować własność domeny