Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 Как создать копию таблицы в одной и той же схеме  [new]
leonandr
Member

Откуда:
Сообщений: 2
Привет всем.

Подскажите как создать копию таблицы, назначив копии известное имя.
Можно и временную таблицу. Главное, чтобы структура совпадала.

Заранее спасибо
30 мар 06, 19:51    [2508524]     Ответить | Цитировать Сообщить модератору
 Re: Как создать копию таблицы в одной и той же схеме  [new]
vasilis
Member

Откуда: Украина, Киев
Сообщений: 2205
https://www.sql.ru/forum/actualthread.aspx?tid=266473
30 мар 06, 20:35    [2508654]     Ответить | Цитировать Сообщить модератору
 Re: Как создать копию таблицы в одной и той же схеме  [new]
leonandr
Member

Откуда:
Сообщений: 2
vasilis
https://www.sql.ru/forum/actualthread.aspx?tid=266473

Много разговоров, а реального предложения нет.

Может эту задачу можно решить по другому? Есть приложение, которое работате с базой через JDBC.
Необходимо:
1. Вставить в таблицу большое количество записей (1 000 000). Тут без коммита хотя бы через 10000 инсертов не обойтись. Операция довольно долгая. Порядка 3 часов. В это время коннект может обломаться.
2. В случае, если 1 000 000 инсертов не выполнились, необходимо вернуть таблицы состояние до начала всех операций.

Я это хочу сделать так:
1. Создать копию таблицы с другим именем.
2. Проделать все действия с копией.
3. Удалить старую таблицу и переименовать копию.

ПОследняя операция займет мало времени и поэтому вряд ли обломится
31 мар 06, 10:51    [2510032]     Ответить | Цитировать Сообщить модератору
 Re: Как создать копию таблицы в одной и той же схеме  [new]
Daugava
Member

Откуда: Riga-Kiev-Gurzuf
Сообщений: 718
Реальных предложений по ссылке 2 килограмма.
Исходя из дополнений, вариант с временной таблицей отбрасываем. Так как сделать из временной постоянную одним движением руки не получится.

Посему делать надо как и предлагалось в одном из моих сообщений по этой ветке.

1. С помощью любого средства создать таблицу (за не имением ничего пользуемся стандартной dbschema, vi (ваш любимый текстовый редактор), dbaccess).
2. Разносим операцию переноса на 2 части - выгрузку данных в текст (unload в dbaccess) и загрузку ее с помощью вашей любимой тулзы (мне больше нравится dbload).
3. Колбасите таблицу.
3. Переименовываете таблицу.

Все конечно замечательно, но обычно такой метод не работает. Поскольку в реальности таблица будет содержать foreign key, на создание которого потребуется весьма длительное время, сравнимое по времени с закачкой данных, а если их несколько, то еще и более длительное.

Что в этом не ясно? Задайте вопрос, постараемся ответим.
31 мар 06, 17:14    [2512360]     Ответить | Цитировать Сообщить модератору
 Re: Как создать копию таблицы в одной и той же схеме  [new]
Двоюшник
Member

Откуда: Киев
Сообщений: 1135
Сделай проще :
1. Сделай таблицу
2. Вставь в нею записи
3. Вставь в нужную из временой
4. Удали временую

---
Ну ты заходи ежели чё...
2 апр 06, 23:22    [2515966]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить