가. SQL 구문
char, varchar 은 대소문자 구분이 되지 않기에 명확하게 구분하기 원할 경우는 binary, varbinary 형식을 사용해야 합니다.
기존 char, varchar 의 경우는 binary 함수를 이용하여 대소문자를 구분할 수 있습니다.
mysql> select word from word where word = 'id';
+------+
| word |
+------+
| id |
| ID |
| ID |
+------+
3 rows in set (0.00 sec)
+------+
| word |
+------+
| id |
| ID |
| ID |
+------+
3 rows in set (0.00 sec)
mysql> select word from word where word = binary('id');
+------+
| word |
+------+
| id |
+------+
1 row in set (0.01 sec)
+------+
| word |
+------+
| id |
+------+
1 row in set (0.01 sec)
나. 테이블의 대소문자 구분
MySQL의 경우는 기본적으로 Linux는 대소문자를 구분하고 Windows는 대소문자를 구분하지 않습니다. 아래의 시스템변수 'lower_case_table_names' 값이 Linux는 0, Windows는 1로 설정이 되어 있습니다. 테이블의 대소문자 구분에 문제가 있을 경우는 해당 변수를 설정파일에서 변경해 주시면 됩니다.
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 0 |
+------------------------+-------+
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 0 |
+------------------------+-------+
Linux의 MyISAM 방식을 사용하던 중 대소문자 구분 없이 사용하려면 기존의 대소문자로 구분되어 저장 되어 있는 테이블을 새롭게 생성해 주어야 합니다.
다. 참고
'DataBase > My-Sql' 카테고리의 다른 글
MySQL Table Copy (0) | 2008.11.26 |
---|---|
[펌]mysql5.x 성능 향상을 위한 파라미터 튜닝 (0) | 2008.11.26 |
[펌]mysql 초기 설정 (0) | 2008.11.06 |
[펌]mysql 테이블 단위로 백업 및 복원 (0) | 2008.11.06 |
[펌]MySQL 에서 root 암호 설정 방법 (0) | 2008.11.06 |