MySQL Truncated incorrect DOUBLE value:'ABC' 에러

Error

SQL 공부를 하던 도중 에러가 발생했다.

 

현재 이렇게 데이터가 있는 상태에서 UPDATE를 돌려서 a열에 있는 3이라는 값을 XYZ로 변경하려고 했다.

 

UPDATE testsql SET a='XYZ' WHERE a=3;

이렇게 작성하고 명령문을 실행했는데

 

 

이런 에러가 발생했다.

 

원인을 찾기위해 검색을 해봤는데 타입이 맞지 않을 경우 발생할 수 있다고 한다.

 

그래서 DESC 명령어로 타입을 뽑아봤는데

 

DESC testsql;

 

이렇게 입력해주고 실행하면

 

 

이렇게 타입이 나오게된다.

 

지금 보면 a필드의 타입은 Varchar타입으로 문자열이다.

 

다시 내가 작성한 명령문을 보자

 

UPDATE testsql SET a='XYZ' WHERE a=3;

여기 보면 'XYZ'라는 값으로 변경하려고 하고 그 변경 대상을 a열에서 3이라는 값을 가진 녀석으로 지정했다.

 

하지만 에러가 발생했는데 3이라고 그냥 써주게되면 문자열로 인식하지 못한다.

 

타입이 문자열이니까 '' 싱글쿼트로 값을 감싸줘야한다.

 

UPDATE testsql SET a='XYZ' WHERE a='3';

 

이렇게 문자열을 문자열로 바꾸겠다고 확실하게 작성해주고 다시 실행해보자

 

성공했을 경우 표시되는 초록체크가 잘 나오고있다.

 

이제 다시 SELECT로 값이 잘 갱신되었는지 확인해보자

SELECT * FROM testsql;

 

이렇게 내가 원하는 값으로 잘 변경되었다.

 

정말 별 것 아닌 타입에러였지만 그래도 이렇게 기록하는 이유는

 

생각보다 아주 단순한 이유로 에러가 자주 발생한다는 것을 공부하면서 늘 느끼고 있기 때문이다.

 

나 스스로에게 경각심을 주고 이런 것도 못잡아서 에러를 만들어? 정말 멍청하네? 라는 생각보다는

 

앞으로 같은 실수를 절대 하지 말자는 다짐이기도 한 것이다.

 

앞으로 에러가 생기지 않도록 기본적인 실수를 하지 말자!