Переименование/реструктуризация таблиц

ЧАстые Вопросы и Ответы

Модераторы: kdv, CyberMax

Ответить
Кузнецов Максим
Сообщения: 7
Зарегистрирован: 17 сен 2007, 12:52

Переименование/реструктуризация таблиц

Сообщение Кузнецов Максим » 17 сен 2007, 13:06

Мне необходимо выполнить переименование и реструктуризацию таблицы. Подскажите, есть ли в IB/FB возможность более оптимального решения этих задач, кроме очевидных, т.е.

- для переименования: создать временную таблицу, скопировать все записи в нее, удалить старую таблицу и создать ее с новым именем, и скопировать записи обратно

- для реструктуризации: создать временную таблицу, скопировать все записи в нее, удалить старую таблицу и создать ее с новой структурой, и скопировать записи обратно, выполнив соответствующие преобразования ?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: Переименование/реструктуризация таблиц

Сообщение WildSery » 17 сен 2007, 14:36

Кузнецов Максим писал(а):- для переименования: создать временную таблицу, скопировать все записи в нее, удалить старую таблицу и создать ее с новым именем, и скопировать записи обратно
Может, создать сразу с нужным именем и скопировать в неё записи?

Кузнецов Максим
Сообщения: 7
Зарегистрирован: 17 сен 2007, 12:52

Сообщение Кузнецов Максим » 17 сен 2007, 19:17

WildSery, спасибо за ответ,
я хотел бы уточнить первоначальный вопрос. Мне нужно реструктуризовать таблицу, но не хотелось бы гонять данные два раза: туда и обратно. Поэтому я хотел узнать - нет ли в FB возможности просто переименовать таблицу (может через системные таблицы RDB$..), чтобы можно было после этого воссоздать эту таблицу с новой структурой и скопировать данные только один раз?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 17 сен 2007, 19:35

Реструктуризация настолько мощная, что Alter Table не канает?

Кузнецов Максим
Сообщения: 7
Зарегистрирован: 17 сен 2007, 12:52

Сообщение Кузнецов Максим » 17 сен 2007, 20:07

Merlin, спасибо за ответ, я все понял.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 18 сен 2007, 10:31

Кузнецов Максим писал(а):просто переименовать таблицу (может через системные таблицы RDB$..)
Такой возможности нет, и в RDB$ лезть по-любому не стоит, сломать можно совсем.

Ответить