sql >> Database teknologi >  >> RDS >> Mysql

Skal en enum i MySQL IKKE være NULL?

MySQL tillader værdien at være NULL, hvis du ikke angiver NOT NULL i kolonnedefinitionen.

Her er en hurtig 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)

Så MySQL respekterer standardværdien, men tillader også NULL'er. (Interessant nok vil det afkorte ugyldige værdier og også tillade tomme strenge, men det er et andet problem)



  1. hvordan man lægger database og læser database fra aktivmappe android, som er oprettet og eksporteret i sqllite

  2. Valg af de sidste 7 dage fra Now() i MYSQL

  3. Hvad betyder importfejl:Symbol ikke fundet:_PQencryptPasswordConn, og hvordan retter jeg det?

  4. Flet to partitioner til én i SQL Server (T-SQL)