MySQL은 레코드 타입에 대해 암묵적인 캐스팅을 지원한다.


 가령 Int형 칼럼에 “12345"로 입력하거나, char형 칼럼에 9999와 같이 입력해도 Int형 칼럼에는 12345가, char형 칼럼에는 “9999"가 입력된다.


 이는 컨버팅 가능한 형에 제한하며 가령 Int형 칼럼에 “amanda"를 입력하면 0으로 삽입된다. 


 그 외 내장으로 Convert(), Cast() 와 같은 함수들이 있는데 이 함수들은 주로 String 데이터의 Character set 및 인코딩 간 캐스팅을 담당한다.


 단순한 내용이지만, 프로그램 구조를 잡을 때 알아두면 편한 경우가 있고,  묵시적 캐스팅을 몰랐다가 CS를 일으키는 경우가 있다. DB 커넥터 쪽에서 에러를 뱉지 않기 때문에, 에러 로그없이 자동 캐스팅으로 인한 문제라도 생겨버린다면 낭패일 수 있다. (물론 그런 경우는 흔치 않다.)

+ Recent posts