sql UPDATE할때 Data truncated 에러 발생시

UPDATE products SET buyPrice = buyPrice * 1.10 WHERE productLine = ‘Classic Cars’; 1 123 12:16:56 UPDATE products SET buyPrice = buyPrice * 1.10 WHERE productLine = ‘Classic Cars’ 38 row(s) affected, 35 warning(s): 1265 Data truncated for column ‘buyPrice’ at row 1 1265 Data truncated for column ‘buyPrice’ at row 2 1265 Data truncated for column ‘buyPrice’ at row 3 1265 Data truncated for column ‘buyPrice’ at row 4 1265 Data truncated for column ‘buyPrice’ at row 5 1265 Data truncated for column ‘buyPrice’ at row 6 1265 Data truncated for column ‘buyPrice’ at row 7 1265 Data truncated for column ‘buyPrice’ at row 8 1265 Data truncated for column ‘buyPrice’ at row 9 1265 Data truncated for column ‘buyPrice’ at row 10 1265 Data truncated for column ‘buyPrice’ at row 11 1265 Data truncated for column ‘buyPrice’ at row 12 1265 Data truncated for column ‘buyPrice’ at row 14 1265 Data truncated for column ‘buyPrice’ at row 15 1265 Data truncated for column ‘buyPrice’ at row 16 1265 Data truncated for column ‘buyPrice’ at row 18 1265 Data truncated for column ‘buyPrice’ at row 19 1265 Data truncated for column ‘buyPrice’ at row 20 1265 Data truncated for column ‘buyPrice’ at row 21 1265 Data truncated for column ‘buyPrice’ at row 22 1265 Data truncated for column ‘buyPrice’ at row 23 1265 Data truncated for column ‘buyPrice’ at row 24 1265 Data truncated for column ‘buyPrice’ at row 25 1265 Data truncated for column ‘buyPrice’ at row 26 1265 Data truncated for column ‘buyPrice’ at row 27 1265 Data truncated for column ‘buyPrice’ at row 28 1265 Data truncated for column ‘buyPrice’ at row 29 1265 Data truncated for column ‘buyPrice’ at row 30 1265 Data truncated for column ‘buyPrice’ at row 31 1265 Data truncated for column ‘buyPrice’ at row 32 1265 Data truncated for column ‘buyPrice’ at row 33 1265 Data truncated for column ‘buyPrice’ at row 34 1265 Data truncated for column ‘buyPrice’ at row 36 1265 Data truncated for column ‘buyPrice’ at row 37 1265 Data truncated for column ‘buyPrice’ at row 38 Rows matched: 38 Changed: 38 Warnings: 35 0.015 sec

경고 메시지 1265 Data truncated for column 'buyPrice' at row XbuyPrice 열의 데이터가 업데이트 과정에서 일부 데이터가 해당 열에 설정된 데이터 타입이나 길이를 초과하여 자르게 되었음을 나타냅니다. 이는 일반적으로 열이 저장할 수 있는 최대값을 넘어서는 값을 업데이트하려 할 때 발생합니다.

buyPrice 열의 데이터 타입을 확인하고, 필요하다면 데이터 타입을 변경하여 더 큰 값을 저장할 수 있도록 조정해야 할 수 있습니다. 예를 들어, buyPriceDECIMAL 또는 FLOAT 타입이고, 소수점 이하의 정밀도나 전체 숫자의 크기가 업데이트하려는 값에 비해 작다면, 이러한 경고가 발생할 수 있습니다.

해결 방법

  1. 데이터 타입 확인: 먼저 buyPrice 열의 현재 데이터 타입과 정밀도를 확인합니다.
   DESCRIBE products;

이 명령어는 products 테이블의 모든 열과 그 데이터 타입을 보여줍니다.

  1. 데이터 타입 변경: 필요한 경우, 더 큰 값을 저장할 수 있도록 buyPrice 열의 데이터 타입을 변경합니다. 예를 들어, buyPrice 열이 DECIMAL(10,2)로 설정되어 있다면, DECIMAL(12,2)와 같이 정밀도를 높일 수 있습니다.
   ALTER TABLE products MODIFY COLUMN buyPrice DECIMAL(12,2);
   -- 0.99999999999999999999 이럴때는 9개수 20개 만큼 decimal 뒤에 늘리기,, DECIMAL(12,20);
   -- 곱셈이나, 나눗셈할때, 0. 뒤에 처리 잘해야함. 자동으로 짤라서 저장하지 않음.
  1. 업데이트 재실행: 데이터 타입을 조정한 후, 업데이트 쿼리를 다시 실행합니다.
   UPDATE products
   SET buyPrice = buyPrice * 1.10
   WHERE productLine = 'Classic Cars';

이러한 단계를 통해 buyPrice 열의 값을 성공적으로 업데이트할 수 있으며, 데이터가 잘릴 위험을 줄일 수 있습니다. 데이터 타입 변경은 기존 데이터에 영향을 줄 수 있으므로, 작업을 수행하기 전에 데이터 백업을 수행하는 것이 좋습니다.



게시됨

카테고리

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다