개발 / 운영 쪽 테이블의 collation이 맞지 않아서 쿼리 수행 시에 다음과 같은 에러가 발생 함.
쿼리: SELECT cash, in_cash FROM tb_cash where svc_inst_no = @tid and cash_attr_no = @cashAttrNo LIMIT 0, 1000
오류 코드: 1267
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
테이블의 COLLATION을 맞춰 주던지 , 쿼리 레벨에서 변경해 준다.
변경 쿼리 : SELECT cash, in_cash FROM tb_cash where svc_inst_no = @tid and cash_attr_no = @cashAttrNo limit 1000 COLLATE utf8_general_ci ;
COLLATION 변경 방법
데이터 베이스 레벨 |
ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci |
테이블 레벨 |
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci |
세션 레벨 |
SET collation_connection = 'utf8_general_ci' ; |
쿼리 레벨 |
SELECT cash, in_cash FROM tb_cash where svc_inst_no = @tid and cash_attr_no = @cashAttrNo limit 1000 COLLATE utf8_general_ci ; |
세션 레벨에서 변경 :
데이터 베이스 레벨에서 변경 : 테이블 레벨에서 변경 :