MYSQL - 경고: #1681 정수 표시 너비는 권장되지 않습니다.
phpMyAdmin에서 mysql 덤프를 Import하면 다음과 같은 경고가 표시됩니다.
Warning: #1681 Integer display width is deprecated and will be removed in a future release.
https://dev.mysql.com/worklog/task/?id=13127에서 찾았습니다.
Deprecate the ZEROFILL attribute for numeric data types and the display width attribute for integer types.
무슨 뜻인지 잘 모르겠어요.누가 이 경고를 생성하는 문제와 해결 방법을 설명해 줄 수 있나요?
자세한 내용은 다음 숫자 유형 속성을 참조하십시오.
MySQL은 타입의 base 키워드 뒤에 있는 괄호 안의 정수 데이터 타입의 표시폭을 임의로 지정하는 확장을 지원합니다.예를 들어 INT(4)는 표시 너비가 4자리인 INT를 지정합니다.이 선택적 표시 너비는 열에 대해 지정된 너비보다 작은 정수 값을 공백으로 왼쪽 패딩하여 표시하기 위해 응용 프로그램에서 사용할 수 있습니다.(즉, 이 너비는 결과 세트와 함께 반환되는 메타데이터에 있습니다.사용 여부는 어플리케이션에 따라 달라집니다.)
표시 폭은 열에 저장할 수 있는 값의 범위를 제한하지 않습니다.또한 열 표시 너비보다 넓은 값이 올바르게 표시되지 않도록 하는 것도 아닙니다.예를 들어, SMORINT(3)로 지정된 컬럼의 범위는 보통 -32768 ~32767 이며, 3 자리수의 허용 범위 외의 값은 3 자리 이상의 숫자를 사용하여 모두 표시됩니다.
따라서 현재 버전의 MySQL(작성 기준 8.0.17)까지는 이러한 경고를 무시해도 안전합니다.
이러한 경고를 방지하고 안전하게 플레이하려면 다음과 같은 열 유형 정의를 사용하여 영향을 받는 모든 테이블을 업데이트하십시오.INT(##)
로.INT
(즉, 표시 너비를 명시적으로 지정하지 않음).
즉, 정수 값의 너비를 지정할 수 없습니다.그냥 써주세요.int
,것은 아니다.int(5)
.
경고는 모두에게 적용됩니다.INT
종류:INT
,SMALLINT
,TINYINT
,MEDIUMINT
,BIGINT
향후 MySQL 릴리즈에서는 표시 길이를 지정할 필요가 없습니다.
저 같은 경우에는TINYINT(1)
경고의 트리거가 되었습니다.
경고를 방지하려면 다음을 수행합니다.is_duplicate TINYINT
대신is_duplicate TINYINT(1)
언급URL : https://stackoverflow.com/questions/58938358/mysql-warning-1681-integer-display-width-is-deprecated
'itsource' 카테고리의 다른 글
SELECT 속도를 높이는 방법..MySQL의 LIKE 쿼리가 여러 열에 있습니까? (0) | 2022.09.29 |
---|---|
두 변수의 값을 교환하기 위한 PHP 함수가 있습니까? (0) | 2022.09.28 |
포어치 실행 시 배열 값 변경 (0) | 2022.09.28 |
NumPy 어레이를 다른 NumPy 어레이에 연결합니다. (0) | 2022.09.28 |
PHP에서 REST API 호출 (0) | 2022.09.28 |