Назад | Перейти на главную страницу

Mysql имена таблиц без учета регистра

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

SELECT * FROM tabledata

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

но в Linux это не работает, потому что исходные имена таблиц tableData

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

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

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

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

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

ALTER TABLE tableData RENAME TO tabledata;