> 데이터 베이스 > MySQL 튜토리얼 > MySQL은 범위를 벗어난 값을 어떻게 처리합니까?

MySQL은 범위를 벗어난 값을 어떻게 처리합니까?

王林
풀어 주다: 2023-08-26 22:01:06
앞으로
1583명이 탐색했습니다.

MySQL 如何处理超出范围的数值?

열 데이터 유형의 허용 범위를 초과하는 MySQL 값의 처리는 SQL 모드에 따라 다음과 같이 다릅니다. -

(A) SQL 엄격 모드 활성화 - 엄격 SQL 모드가 활성화된 경우 , MySQL은 범위 값을 입력하고 오류를 반환합니다. 이 경우 일부 또는 모든 값의 삽입이 실패합니다.

예를 들어 데이터 유형이 TINYINT 및 UNSIGNED TINYINT인 두 개의 열이 있는 테이블을 만들었습니다.

mysql> Create table counting(Range1 Tinyint, Range2 Tinyint Unsigned);
Query OK, 0 rows affected (0.14 sec)
로그인 후 복사

이제 다음 명령의 도움으로 엄격한 SQL 모드를 활성화했습니다.

mysql> Set SQL_MODE ='traditional';
Query OK, 0 rows affected (0.00 sec)
로그인 후 복사

이제 범위를 벗어난 값을 열에 삽입하려고 하면 MySQL은 오류를 반영하고 두 삽입 모두 실패합니다. 다음 쿼리 확인 -

mysql> Insert into Counting(Range1, Range2) Values(256,256);
ERROR 1264 (22003): Out of range value for column 'Range1' at row 1

mysql> Select * from counting;
Empty set (0.00 sec)
로그인 후 복사

(B) SQL 엄격 모드 비활성화 - 제한적 SQL 모드가 비활성화되면 MySQL은 값을 열 데이터 유형의 적절한 끝점으로 자르고 결과 값을 누적합니다. MySQL은 정리로 인해 발생하는 열 할당 변환 결과에 대한 경고를 반영합니다.

예를 들어 SQL 엄격 모드를 비활성화한 후 열에 값을 삽입하면 MySQL은 경고를 반영하고 값을 적절한 엔드포인트로 잘라낸 후 저장합니다. 다음 쿼리를 통해 이해할 수 있습니다 -

mysql> Set SQL_MODE = '';
Query OK, 0 rows affected (0.00 sec)

mysql> Insert Into Counting(Range1,Range2) values (256,256);
Query OK, 1 row affected, 2 warnings (0.02 sec)

mysql> Show Warnings;
+---------+------+-------------------------------------------------+
| Level   | Code | Message                                         |
+---------+------+-------------------------------------------------+
| Warning | 1264 | Out of range value for column 'Range1' at row 1 |
| Warning | 1264 | Out of range value for column 'Range2' at row 1 |
+---------+------+-------------------------------------------------+
2 rows in set (0.00 sec)

mysql> Select * from Counting;
+--------+--------+
| Range1 | Range2 |
+--------+--------+
| 127    | 255    |
+--------+--------+
1 row in set (0.00 sec)
로그인 후 복사

위 내용은 MySQL은 범위를 벗어난 값을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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