MySQL на проблемах чувствительности к регистру Ubuntu

0
  1. БД была разработана для SQL Server изначально. Тогда все имена таблиц были смешанными. Например, UserTasks.
  2. Сотни хранимых процедур были написаны в этих таблицах, и эти хранимые процедуры используют имена смешанных регистров.
  3. DB была перенесена в MySQL (в Windows), и в течение этого процесса имена таблиц были автоматически преобразованы во все строчные буквы, но код внутри хранимых процедур был преобразован в формат MySQL без изменения имен имен таблиц.
  4. Мы просто перешли на Ubuntu, и все перестало работать, потому что MySQL больше не может находить те таблицы, которые используются в операторах SQL в хранимых процедурах.

Есть ли простой способ обойти это? Я знаю трудный путь. Откройте каждую из этих 550 хранимых процедур и измените имена таблиц на нижний регистр один за другим.

Теги:
case-sensitive

1 ответ

1

Вы должны прочитать https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

Чувствительность таблиц к таблицам - сложная история MySQL, потому что она работает на всех типах сред: Windows, которая не зависит от регистра, Unix и Linux, которая чувствительна к регистру, а также MacOS, которая является своего рода гибридом.

Возможно, вы сможете использовать параметр lower_case_table_names. Я не могу быть уверен, потому что сам не использую этот параметр, я не использую Windows, и я редко использую хранимые процедуры MySQL, поэтому я не уверен, как это будет взаимодействовать с кодом процедуры.

Удачи!

  • 0
    Благодарю. Вроде работает. Я надеюсь, что с именами столбцов таблицы не возникает проблем с чувствительностью к регистру, потому что в хранимых процедурах даже они иногда бывают правильными, а иногда и строчными, которые не соответствуют реальным случаям имен столбцов таблицы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню