> 데이터 베이스 > MySQL 튜토리얼 > MySQL ENUM 열에 숫자를 저장하면 안되는 이유는 무엇입니까?

MySQL ENUM 열에 숫자를 저장하면 안되는 이유는 무엇입니까?

WBOY
풀어 주다: 2023-09-04 12:29:09
앞으로
1272명이 탐색했습니다.

为什么我们不应该将数字存储到 MySQL ENUM 列中?

MySQL은 ENUM 멤버를 참조하기 위해 ENUM 값을 내부적으로 정수 키(인덱스 번호)로 저장합니다. ENUM 열에 정수 값을 저장하지 않는 주된 이유는 분명히 MySQL이 값이 아닌 인덱스를 참조하게 되고 그 반대의 경우도 마찬가지이기 때문입니다.

다음 예를 보면 명확하게 알 수 있습니다.

mysql> Create table enmtest(Val ENUM('0','1','2'));
Query OK, 0 rows affected (0.18 sec)

mysql> Insert into enmtest values('1'),(1);
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from enmtest;
+-----+
| Val |
+-----+
| 1   |
| 0   |
+-----+
2 rows in set (0.00 sec)
로그인 후 복사

여기서 '1'을 문자열로 삽입했는데 실수로 따옴표 없이 숫자 1도 삽입했습니다. MySQL은 숫자 입력을 멤버 목록의 첫 번째 항목(예: 0)에 대한 내부 참조인 인덱스 값으로 혼란스럽게 사용합니다.

위 내용은 MySQL ENUM 열에 숫자를 저장하면 안되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿