Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apakah enum di MySQL harus NOT NULL?

MySQL akan mengizinkan nilainya menjadi NULL jika Anda tidak menentukan NOT NULL dalam definisi kolom.

Berikut tes cepatnya:

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)

Jadi MySQL tidak menghormati nilai default, tetapi juga memungkinkan NULL. (Menariknya, ini akan memotong nilai yang tidak valid dan mengizinkan string kosong juga, tapi itu masalah yang berbeda)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memeriksa apakah dua rentang tanggal tumpang tindih di mysql?

  2. Perkalian data dari baris MySQL

  3. MySql pada konsep penghapusan kaskade?

  4. Hirarki Kategori (PHP/MySQL)

  5. Duplikat nama kolom pada JOIN di mysql