2017-12-17 10 views
0
  1. DB는 처음에 SQL Server 용으로 설계되었습니다. 당시 모든 테이블 이름은 대소 문자가 혼용되었습니다. 예 : UserTasks.
  2. 수백 개의 저장 프로 시저가이 테이블에 작성되었으며 이러한 저장 프로 시저에서는 대소 문자가 혼합 된 테이블 이름을 사용합니다.
  3. DB가 MySQL로 마이그레이션되었으며 (Windows에서)이 프로세스 중에 테이블 이름이 자동으로 모든 소문자로 변환되었지만 저장 프로 시저 내의 코드가 테이블 이름의 경우를 변경하지 않고 MySQL 형식으로 변환되었습니다.
  4. 우리는 단지 우분투로 이전했는데, MySQL은 스토어드 프로 시저에서 SQL 문에 사용 된 테이블을 더 이상 찾을 수 없기 때문에 모든 것이 작동을 멈췄습니다.

쉬운 방법이 있습니까? 나는 어려운 길을 안다. 550 개의 저장 프로 시저 중 하나를 열고 테이블 이름을 하나씩 소문자로 변경하십시오. 대소 문자를 구분 윈도우, 유닉스와 리눅스, 대소 문자를 구분 : IT 환경의 모든 유형에서 작동하기 때문에MySQL의 우분투 케이스 감도 문제

당신은 테이블 이름의 https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

대소 문자 구분을 읽어야

답변

1

는 MySQL의에 복잡한 이야기입니다 , 그리고 또한 하이브리드의 일종 인 MacOS가있다.

lower_case_table_names 옵션을 사용할 수 있습니다. Windows를 사용하지 않고 MySQL 저장 프로 시저를 거의 사용하지 않으므로 프로 시저 코드와 어떻게 상호 작용하는지 확신 할 수 없습니다.

행운을 빈다.

+0

감사합니다. 작동하는 것 같습니다. 스토어드 프로 시저의 경우에도 때로는 대문자와 소문자가 모두 실제 테이블 열 이름과 일치하지 않기 때문에 테이블 열 이름에 대/소문자 구분 문제가 없기를 바랍니다. –