본문 바로가기

IT/DB

Mysql 파라미터 lower_case_table_names

728x90
반응형

lower_case_table_names

0 : 대소문자를 구분한다.

1 : 대소문자를 구분하지 않는다.

 

mysql 8.0 업그레이드를 위해 테스트 db의 lower_case_table_names 파라미터를 기존 0에서 1로 변경한 후 upgrade prechecks 를 진행한 결과 프로시저, 테이블을 찾을 수 없다는 메세지가 발생하였다.

        {
            "id": "routinesSyntaxCheck",
            "title": "MySQL 8.0 syntax check for routine-like objects",
            "status": "ERROR",
            "description": "PROCEDURE 프로시저명 does not exist",
            "documentationLink": "https://dev.mysql.com/doc/refman/en/keywords.html"
        }
 ,      {
            "id": "checkTableOutput",
            "title": "Issues reported by 'check table x for upgrade' command",
            "status": "OK",
            "detectedProblems": [
                {
                    "level": "Error",
                    "dbObject": "PRSNDB.PRSN_INFO_QRY_HIST_PART_LOG",
                    "description": "Table '데이터베이스명.테이블명' doesn't exist"
                }
            ]
        }

 

DB 툴 개체탐색기에서 확인해보았을 때도 개체를 찾을 수 없었다.

 

lower_case_table_names 파라미터를 0으로 원복하고 확인한 결과 다시 조회가 되었다.

 

 

 

lower_case_table_names 를 1로 설정할 경우 대소문자를 구분하지 않는다고 알려져있지만, 모든 명령어를 소문자로 사용한다가 더 맞는 표현이다. 모든 명령어를 소문자로 바꾸어 적용하기 때문에 새로 생성되는 오브젝트들은 소문자로만 생성되게된다.

 

때문에 기존에 대문자로 생성된 객체에 대해서는 조회가 불가능하게 된다. 

만약 대문자가 포함된 객체가 있는데 lower_case_table_names  를 1로 설정하여 조회가 되지 않는다면, 조회가 되지 않는 것일 뿐 객체 자체가 사라지는 것이 아니기 때문에 파라미터를 원복하면 다시 조회가 가능하다.

728x90
반응형

'IT > DB' 카테고리의 다른 글

MSSQL DB Offline 전환  (0) 2024.08.13
[MSSQL] 인스턴스 기본 상태 확인  (0) 2024.06.05
Oracle, MySQL, MSSQL DB 계정 생성과 권한 할당  (0) 2024.01.24
[SQL] DROP TRUNCATE DELETE 차이점  (0) 2023.09.15
이기종 DB SQL 변환 사이트  (0) 2023.08.22