powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
9 сообщений из 9, страница 1 из 1
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33533381
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вычитал в топике про оптимизацию сервера про то что нехорошо иметь много полей типа char к тому же полупустых

а у нас в бд везде напихано char полей :(

как максимально безболезненно (с сохранением данных)
перейти на поля с varchar или тока путем пересоздания бд с заливкой данных?
...
Рейтинг: 0 / 0
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33533486
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала делаешь backup

Делаешь сначала RENAME нужной таблицы.
Потом Создаешь таблицу с нужной структурой и правильным назвением.
потом в одной транзакции делаешь:
ALTER TABLE newtable ACTIVATE NOT LOGGED INITIALLY.
И переливаешь данные 1:1 (insert from select)
COMMIT.
Старую таблицу убиваешь.
И так в цикле по всем таблам.

И в конце пересоздаешь все нужные индексы, триггеры, пересвязываешь пакеты.
...
Рейтинг: 0 / 0
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33535922
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тип Char - единственное поле которому можно увеличить длину или изменить тип на varchar в операторе alter table. Правда уже имеющиеся данные при этом останутся старой длины.
...
Рейтинг: 0 / 0
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33535926
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду безо всякого переливания данных - прямо по живой таблице.
...
Рейтинг: 0 / 0
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33536315
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
golsaтип Char - единственное поле которому можно увеличить длину или изменить тип на varchar в операторе alter table. Правда уже имеющиеся данные при этом останутся старой длины.
Хочу примерчик... работающий....
...
Рейтинг: 0 / 0
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33536566
тлгдшлщм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2gardenman.

Такой alter будет в 9-ке
...
Рейтинг: 0 / 0
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33536579
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тлгдшлщм2gardenman.

Такой alter будет в 9-ке

Хочу девятку

Как много однако у меня желаний....
...
Рейтинг: 0 / 0
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #33542380
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в DB2 7.2 for Win увеличивал длину поля CHAR из Control Center - как только длина стала больше 255 - поле поменяло тип на VARCHAR. При этом формировался AFTER TABLE - текст не помню. Под рукой нет DB2.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
    #36520189
warIord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
golsa,


оч сомневаюсь, вы увеличивали скорее таки размер поля VARCHAR ибо вот сейчас с такой же проблемой бодаюсь на db2 7.2 Win, нету такого в SQL под 7.2 , нету
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как можно максимально безболезнено поменять столбцы char на varchar по всей базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]