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;
이렇게 내가 원하는 값으로 잘 변경되었다.
정말 별 것 아닌 타입에러였지만 그래도 이렇게 기록하는 이유는
생각보다 아주 단순한 이유로 에러가 자주 발생한다는 것을 공부하면서 늘 느끼고 있기 때문이다.
나 스스로에게 경각심을 주고 이런 것도 못잡아서 에러를 만들어? 정말 멍청하네? 라는 생각보다는
앞으로 같은 실수를 절대 하지 말자는 다짐이기도 한 것이다.
앞으로 에러가 생기지 않도록 기본적인 실수를 하지 말자!