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 X
는 buyPrice
열의 데이터가 업데이트 과정에서 일부 데이터가 해당 열에 설정된 데이터 타입이나 길이를 초과하여 자르게 되었음을 나타냅니다. 이는 일반적으로 열이 저장할 수 있는 최대값을 넘어서는 값을 업데이트하려 할 때 발생합니다.
buyPrice
열의 데이터 타입을 확인하고, 필요하다면 데이터 타입을 변경하여 더 큰 값을 저장할 수 있도록 조정해야 할 수 있습니다. 예를 들어, buyPrice
가 DECIMAL
또는 FLOAT
타입이고, 소수점 이하의 정밀도나 전체 숫자의 크기가 업데이트하려는 값에 비해 작다면, 이러한 경고가 발생할 수 있습니다.
해결 방법
- 데이터 타입 확인: 먼저
buyPrice
열의 현재 데이터 타입과 정밀도를 확인합니다.
DESCRIBE products;
이 명령어는 products
테이블의 모든 열과 그 데이터 타입을 보여줍니다.
- 데이터 타입 변경: 필요한 경우, 더 큰 값을 저장할 수 있도록
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. 뒤에 처리 잘해야함. 자동으로 짤라서 저장하지 않음.
- 업데이트 재실행: 데이터 타입을 조정한 후, 업데이트 쿼리를 다시 실행합니다.
UPDATE products
SET buyPrice = buyPrice * 1.10
WHERE productLine = 'Classic Cars';
이러한 단계를 통해 buyPrice
열의 값을 성공적으로 업데이트할 수 있으며, 데이터가 잘릴 위험을 줄일 수 있습니다. 데이터 타입 변경은 기존 데이터에 영향을 줄 수 있으므로, 작업을 수행하기 전에 데이터 백업을 수행하는 것이 좋습니다.
답글 남기기 응답 취소