Mysql нечувствительные к регистру имена таблиц

У меня было две базы данных, одна на сервере Windows, и одна на сервере Linux, я переместил базу данных на сервер Linux, но столкнулся с проблемой, в Windows, когда сделал выбор для примера

SELECT * FROM tabledata

Работал нормально.

но Linux это не работает, потому что оригинальные имена таблиц tableData

Есть ли способ настроить MySQL без учета регистра?

2 ответа

Решение

Яркий пример запутанного кроссплатформенного дизайна. Из документации MySQL по этому вопросу:

чувствительность к регистру базовой операционной системы играет роль в чувствительности к регистру имен баз данных и таблиц. Это означает, что имена баз данных и таблиц не чувствительны к регистру в Windows, и чувствительны к регистру в большинстве разновидностей Unix.

К счастью, есть директива конфигурации lower_case_table_names, которая при значении 2 отключает чувствительность к регистру для сравнений.

Почему бы просто не переименовать таблицу?

ALTER TABLE tableData RENAME TO tabledata;
Другие вопросы по тегам