MySQL 자동형변환 금지 옵션이 있나요?
조회수 8925회
안녕하세요 MySQL 쿼리관련하여 문제가 발생하여 질문글을 올립니다..
select ID,membername,SubID from fund_member where SubID='SP107' ;
로 검색했을때 아래와 같은 결과같이 나오게 됩니다.
ID | membername | SubID |
---|---|---|
55 | 멤버 | 0 |
1 row in set, 1 warning (0.00 sec)
SubID를 SP107로 검색하였는데 0인결과 같이 나오길래 warning을 확인해보니
Level | Code | Message |
---|---|---|
Warning | 1292 | Truncated incorrect DOUBLE value: 'SP107' |
와 같은 경고가 발생했고 테이블 구조를 확인하니 SubID는 문자가 아닌 숫자형
필드였습니다. MySQL에서 자동적으로 형변환을 했기 때문에 이런 문제가
발생한 케이스로 판단 되는데, MySQL에서 자동형변환을 하지 않고 경고가 아닌
에러를 뿌려주도록 할수 있는 옵션이 있나요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
SQL을 strict mode 설정하면 된다고하네요.
set @@GLOBAL.sql_mode = "STRICT_ALL_TABLES"; set @@SESSION.sql_mode = "STRICT_ALL_TABLES";
또는
SET sql_mode = '';
로 설정을 바꿔주세요.
Strict mode에 대한 자세한 설명은 Server SQL Modes - Strict에 있습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력