반응형

개발 / 운영 테이블의 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 ;

 

세션 레벨에서 변경 :

데이터 베이스 레벨에서 변경 : 테이블 레벨에서 변경

반응형

+ Recent posts