Identifier Case-sensitivity

객체의 대/소문자 구분 여부는 시스템의 운영체제에 의해 부분적으로 결정됩니다.
(1) Unix 기반 시스템은 대/소문자를 구분합니다
(2) Windows는 대/소문자를 구분하지 않습니다
(3) Mac OS X는 일반적으로 대/소문자를 구분하지 않지만, UFS 볼륨을 사용하는 경우 구분이 가능합니다

또한,
(1) 데이터베이스, 테이블, 테이블 별칭(table alias), trigger 이름은 시스템의 대/소문자 구분에 영향을 받습니다
(2) 인덱스, 컬럼, 컬럼 별칭(column alias), stored routineevent 이름은 시스템과 상관없이 대/소문자를 구분하지 않습니다
(3) 로그 파일 그룹명은 대/소문자를 구분합니다

서버 시스템 변수인 lower_case_table_names 값이 중요한 역할을 합니다. 이 변수값이 데이터베이스, 테이블, 테이블 별칭(table alias)의 대/소문자 구분 여부를 결정합니다.
(1) 0인 경우(Unix 기반 시스템 기본값), 대/소문자를 구분하도록 설정됩니다
(2) 1인 경우(Windows 시스템 기본값), 이름이 소문자로 저장되고 대/소문자를 구분하지 않습니다.
(3) 2인 경우(Mac OS X 시스템 기본값), 이름은 선언된 대로 저장되고 소문자로 비교됩니다.

따라서 Unix 기반 시스템이 Windows처럼 대/소문자를 무시하며 동작하게 할 수는 있지만, 그 반대는 Windows 파일시스템이 지원하지 않기 때문에 불가능합니다.

대소 문자를 구분하지 않는 시스템에서도, 같은 명령문 내에서는 대소 문자를 일관되게 사용해야합니다. 다음 구문은 테이블 이름을 다르게 참조하므로 실패합니다.

SELECT * FROM a_table WHERE A_table.id>10;

식별자 명명 규칙의 전체 목록은 Identifier Names을 참조하세요.

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.