Всем привет!
Можно ли создать таблицу, и не делая commit транзакции начать с ней работать (в этой же транзакции)? У меня почему-то не получается...
Создание таблицы (-:
Модератор: kdv
Создание таблицы (-:
Последний раз редактировалось PrettyFly 16 мар 2005, 17:08, всего редактировалось 1 раз.
Не понимаю, почему ты так считаешь? У меня идея такая: Нужно провести обновление программы с версии на версию, при этом происходит обновление базы (добавляются таблицы, изменяются существующие, заносятся данные). Если вдруг при обновлении произошла ошибка, то дролжен произойти полный откат к исходной версии... А для этого нужно всё делать в одной транзакции, и подтверждать её только при успешном завершении обновления.
... зачем после этого базу в помойку нести?
... зачем после этого базу в помойку нести?
-
- Сообщения: 44
- Зарегистрирован: 21 янв 2005, 10:18
Задача решается так. Сначала бэкап базы, ресторим этот бэкап в другое место, потом потом накатываем туда DDL, потом commit, потом DML и опять commit. Потом удаляем старую базу и кладем на ее место новую. Это самый простой и дешевый путь, imho.PrettyFly писал(а):Нужно провести обновление программы с версии на версию
Я не считаю, я знаю. Собственно выполнение DDL-операторов, в отличие от DML, осуществляется на Commit, а до того осуществляется только запись данных для выполнения в системные таблицы, которые на самом деле не самодостаточный объект, а всего лишь интерфейс к внутренним структурам. DML над полусозданным объектом может приводить к весьма забавным результатам. Насчёт как надо - согласен с предыдущим оратором.PrettyFly писал(а):Не понимаю, почему ты так считаешь?
... зачем после этого базу в помойку нести?