У меня есть проблема, при которой на моем рабочем сервере работает Unix, а мой dev-сервер запускает MS Windows. Проблема в том, что Windows не чувствительна к регистру, а Unix. Поэтому моя таблица, установленная на производственном сервере, использует имена таблиц верхнего уровня, т.е. "Клиенты", а в Windows имена таблиц - "нижние" клиенты.
Все это прекрасно, пока вам не нужно будет получать данные из одного окна в другое, а ваш экспорт SQL говорит о вставке в "клиентов" в нижнем регистре и в предварительном порядке "клиенты Unkown table". Поскольку производственный сервер в настоящее время находится в режиме общего хостинга, я не могу изменить настройки и установить ключ, который игнорирует случай.
Итак, мой вопрос: есть ли способ заставить Windows преобразовать таблицы в правильный случай или есть какой-то параметр, который я могу включить в файл экспорта SQL, чтобы я мог загружать данные без этой проблемы.
Спасибо
ОБНОВЛЕНИЕ
Вот что я обнаружил для кого-то другого, имеющего эту проблему.
Если вы уже настроили свои таблицы под управлением MySQL в Windows, добавьте lower_case_table_names = 2 в ваш файл my.cnf или my.ini не изменят случай ваших таблиц автоматически, даже если они были изначально созданы с использованием заглавных или смешанных имен.
CREATE TABLE "MyTable" создаст новую таблицу "mytable" не "MyTable", даже если в файле my.cnf указано значение lower_case_table_names = 2.
Чтобы обойти эту проблему, используйте этот метод
- Сделайте копию исходной таблицы
- Снимите исходную таблицу
- Переименуйте свою таблицу копирования, используя правильный случай.
Это единственный способ, которым это будет работать. Надеюсь, это поможет кому-то.