MySQL의 열 오류로 인해 수정 데이터가 잘림

Mehvish Ashiq 2023년6월20일
MySQL의 열 오류로 인해 수정 데이터가 잘림

이 문서는 MySQL에서 Data is truncated for a column 오류에 대한 가능한 이유와 해결 방법을 보여줍니다.

MySQL에서 Data is Truncated for a Column 오류 수정

여기에서는 MySQL data is truncated for a column 오류를 제거하기 위한 가능한 이유와 솔루션을 살펴봅니다.

데이터가 너무 큽니다.

MySQL 테이블에 수동으로 삽입하는 대신 파일에서 데이터를 로드해야 하는 몇 가지 시나리오가 있습니다. 로드하는 동안 Data truncated for a column 'columnName' at row # 오류가 발생할 수 있습니다. 왜?

주어진 데이터가 MySQL 테이블에 있는 열의 데이터 유형에 비해 너무 큰 것 같기 때문입니다. 예를 들어, 제공된 데이터의 65K 문자만 수용할 수 있는 value 속성이 text 유형인 테이블이 있습니다.

65K를 초과하는 value 열에 데이터를 삽입하면 이 오류가 발생합니다.

이 문제를 해결하기 위해서는 MEDIUMTEXT 또는 LONGTEXT와 같이 16MB 및 4GB를 수용할 수 있는 더 많은 데이터를 수용할 수 있는 유형을 변경해야 합니다. 여기에서 몇 가지 최적화 팁을 찾을 수도 있습니다.

SET ANSI_WARNINGS OFF를 사용하여 데이터를 자르고 열 데이터 유형의 최대 길이를 고려하여 레코드를 다시 삽입할 수도 있습니다.

잘못된 데이터가 전달됨

Error Code: 1265. Data truncated for column 'a' at row 1은 잘못된 데이터를 삽입하려고 하면 MySQL에서도 발생합니다.

예를 들어 price 필드가 float 유형이고 NULL 값을 허용하는 테이블이 있습니다. 다음을 참조하십시오.

#create a table named `prices`
CREATE TABLE prices (ID INT NOT NULL, price FLOAT NULL);
#insert the first record
INSERT prices VALUES (1, '');

여기에서는 NULL 값을 갖는 float 유형인 price 열에 빈 문자열을 삽입합니다. NULL''는 같은 것이 아닙니다.

그래도 NULL 값을 갖는 열에 빈 문자열을 삽입하려고 하면 오류 코드: 1265. 행 1의 'a' 열에 대해 잘린 데이터가 생성됩니다. 이 문제에 대한 가장 간단한 해결책은 price 테이블의 각 열에서 요구하는 올바른 데이터 유형의 올바른 값을 전달하는 것입니다.

빈 문자열('') 대신 명시적으로 NULL 값을 지정하거나 INSERT 문에 특정 열에 대한 값을 쓰지 않아도 문제를 해결할 수 있습니다. 예제를 고려하여 다음 스니펫을 참조하십시오.

INSERT prices VALUES (1, NULL); #insert null explicitly
INSERT prices (ID) VALUES (2); #don't specify values for `price` column

잘못된 종료 문자

MySQL 테이블에 모든 줄을 수동으로 삽입하면 모든 것이 잘 됩니다. 오류는 한 번에 둘 이상의 줄을 로드하려고 시도하고 종료 문자를 제대로 가져오지 않을 때 발생합니다.

이를 해결하기 위해서는 파일의 종료 문자를 확인하고 다음과 같이 LOAD 명령에 지정해야 합니다.

#if the terminating character is `tab`
FIELDS TERMINATED BY '\t'
#if the terminating character is a `comma`
FIELDS TERMINATED BY ','
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MySQL Error