SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Изменение COLLATION во всей базе (Способы изменить COLLATION во всех таблицах базы данных)
Изменение COLLATION во всей базе [сообщение #118] Thu, 30 June 2022 10:11 Переход к следующему сообщению
RusMikle в настоящее время не в онлайне  RusMikle
Сообщений: 18
Зарегистрирован: June 2022
Junior Member
Всем доброго времени суток,

сушествует ли другой способ кроме как создать новое поле в нужным collation, скопировать в него данные, удалить старое поле и переименовать новое?
Уже во второй фирме сталкиваюсь с тем что collation выбран неудачно и надо менять на ..._CI
Возможно есть способ манипуляции при резервном копировании и восстановлении?
Можно конечно экспортировать отдельно метаданные и отдельно данные, поменять ручками в метаданных и восстановить метаданные а потом накатить данные но возможно есть решение проше?

FB3
Спасибо.
Re: Изменение COLLATION во всей базе [сообщение #119 является ответом на сообщение #118] Thu, 30 June 2022 11:08 Переход к предыдущему сообщениюПереход к следующему сообщению
kdv в настоящее время не в онлайне  kdv
Сообщений: 98
Зарегистрирован: June 2022
Member
Собственно:
- в базе дефолтный чарсет и коллейт работает только при создании строковых и блоб столбцов. Т.е. этот дефолт "не для базы".
- при бэкапе-ресторе метаданные не перекомпилируются
- при изменении коллейта нужно перестроить все индексы по этому столбцу.
и всё.

если база не очень большая, то тогда - экспорт скрипта, изменение в скрипте, создание новой БД, и копирование всех данных из старой БД в новую, например IBPump.
Re: Изменение COLLATION во всей базе [сообщение #127 является ответом на сообщение #119] Thu, 30 June 2022 15:45 Переход к предыдущему сообщениюПереход к следующему сообщению
RusMikle в настоящее время не в онлайне  RusMikle
Сообщений: 18
Зарегистрирован: June 2022
Junior Member
да, примерно так и предполагал.
Кстати возник вопрос, IBPump правильно расставляет таблицы местами (примари первыми, слэйв после них итп) или индексы/констрэйты надо накатывать уже после залития данных?
Re: Изменение COLLATION во всей базе [сообщение #145 является ответом на сообщение #127] Wed, 06 July 2022 13:10 Переход к предыдущему сообщению
kdv в настоящее время не в онлайне  kdv
Сообщений: 98
Зарегистрирован: June 2022
Member
ibpump отрубает триггеры, но насколько я помню, не констрейнты. С учетом того, что целевая база будет пустая, лучше сделать ей б-р и при ресторе указать -i, чтобы не мучиться с отключением индексов или констрейнтов. А потом индексы включить.
Предыдущая тема: Использование регульрного выражения в update запросе
Следующая тема: Как правильно обработать post_event в приложении?
Переход к форуму:
  


Текущее время: Sun Dec 22 14:53:45 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00651 секунд