| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Firebird, Interbase > изменение длины поля |
| Автор: ksili 24.1.2008, 12:28 | ||
| Каким запросом можно изменить длину строкового поля в таблице (FireBird 2.0)? когда делаю это в IBExpert'е, он генерирует такой запрос:
то есть никакой информации ни о имени таблицы, ни о имени изменяемого поля. Ненаглядно как-то, да и ненадёжно, скрипт я делаю в одном месте, а применяться он будет в другом. Нет гарантии, что там это поле будет 'RDB$105'. Как можно это же самое сделать по-другому? Прошу не предлагать пересоздавать таблицу. Если кто знает покажите на таком примере: есть таблица T_USERS, в ней поле PHONE CHAR(11) надо заменить на поле PHONE CHAR(20) В книге Х.Борри ничего такого не нашёл |
| Автор: Akella 24.1.2008, 13:36 | ||||
| почитай про alter table ещё вариант - создай новый домен и назначт его полю делают еще так: 1. создают новый столбец 2. переносят в него данные 3. удаляют старый столбец 4. переименовывают новый столбец Добавлено через 3 минуты и 18 секунд Вот ещё вариант
Добавлено через 4 минуты и 9 секунд
Добавлено через 5 минут http://alexpanf.nm.ru/books/ibsql/ |
| Автор: ksili 25.1.2008, 08:42 | ||||
Akella, спасибо! Только в примере слово type пропустил. Вот так сработало:
Вот только назад с 20 символов на 11 длину таким запросом изменить не получилось. Сказал, что минимальная длина, которую можно указать - 20 символов. А вот тем запросом, к-рый мне изначально не нравился, получилось))
Интересно, почему? |
| Автор: ksili 25.1.2008, 09:29 |
Ну так получается, это способ обойти вышеупомянутое ограничение FB |
| Автор: igor_123 29.1.2008, 17:39 |
| нет не сняли, да и незачем его снимать, сделал столбец с меньшей длиной перелил туда данные, удалил старый, переименовал новый |
| Автор: Akella 29.1.2008, 19:52 | ||
igor_123, читал?
|
| Автор: igor_123 30.1.2008, 10:24 |
| читал, но увидел только сейчас |