Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL ENUM 데이터 유형의 다른 속성은 무엇입니까?


MySQL ENUM 유형은 허용되는 값에 영향을 미치는 다음 속성으로 정의할 수 있습니다. -

  • NULL이 아님 − ENUM 유형에서는 기본적으로 NULL 값이 허용됩니다. NULL 값을 허용하지 않으려면 ENUM 열을 설명할 때 NOT NULL 속성을 사용해야 합니다.
  • NULL − NULL 속성은 DEFAULT NULL과 동의어입니다. NULL에 대한 인덱스 값이 NULL입니다.
  • 기본 − DEFAULT 속성은 값이 지정되지 않은 경우 ENUM 데이터 유형이 기본값을 갖도록 합니다. 즉, INSERT 문은 이 필드에 대한 값을 포함할 필요가 없다고 말할 수 있습니다. 포함하지 않으면 DEFAULT 다음 값이 삽입되기 때문입니다. 함수는 DEFAULT 표현식에서 허용되지 않습니다. ENUM 데이터 유형의 경우 DEFAULT 값에는 NULL 및 빈 문자열('')이 포함됩니다.

예시

다음 예는 ENUM 데이터 유형과 함께 이러한 속성의 사용을 보여줍니다.

mysql> SET SESSION sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> Create Table enumtesting(e_value ENUM('a','1')NOT NULL DEFAULT '1',id TINYINT NOT NULL);
Query OK, 0 rows affected (0.23 sec)

mysql>Insert into
enumtesting(e_value,id)values('1','1'),('',2),(NULL,3),('abc',4);
Query OK, 4 rows affected, 3 warnings (0.09 sec)
Records: 4 Duplicates: 0 Warnings: 3

mysql> show warnings;
+---------+------+----------------------------------------------------+
| Level   | Code |  Message                                           |
+---------+------+----------------------------------------------------+
| Warning | 1265 | Data truncated for column 'e_value' at row 2       |
| Warning | 1048 | Column 'e_value' cannot be null                    |
| Warning | 1265 | Data truncated for column 'e_value' at row 4       |
+---------+------+----------------------------------------------------+
3 rows in set (0.00 sec)

mysql> Select * from enumtesting;
+----+---------+
| e_value | id |
+---------+----+
| 1       |  1 |
|         |  2 |
|         |  3 |
|         |  4 |
+---------+----+
4 rows in set (0.00 sec)

mysql> insert into enumtesting(id) values(5);
Query OK, 1 row affected (0.11 sec)

mysql> Select * from enumtesting;
+---------+----+
| e_value | id |
+---------+----+
| 1       | 1 |
|         | 2 |
|         | 3 |
|         | 4 |
| 1       | 5 |
+---------+----+
5 rows in set (0.00 sec)

mysql> select e_value, e_value+0 AS enum_index, id from enumtetsing;
+---------+------------+----+
| e_value | enum_index | id |
+---------+------------+----+
| 1       |          2 |   1|
|         |          0 |   2|
|         |          0 |   3|
|         |          0 |   4|
| 1       |          2 |   5|
+---------+------------+----+
5 rows in set (0.00 sec)