Я работаю над скриптами, которые применяют обновления схемы базы данных. Я настроил все мои сценарии обновления SQL, используя start transaction/commit. Я передаю эти скрипты в psql в командной строке.Вложенные транзакции в postgresql 8.2?
Теперь мне нужно применить несколько сценариев одновременно и в одну транзакцию. Пока единственное решение, которое я придумал, - удалить начальную транзакцию/фиксацию из исходного набора сценариев, а затем объединить их в новый блок транзакции/фиксации начала. Я пишу perl-скрипты, чтобы сделать это на лету.
Фактически я хочу вложенные транзакции, которые я не могу понять, как это сделать в postgresql.
Есть ли способ сделать или имитировать вложенные транзакции для этой цели? У меня есть настройки, которые автоматически срабатывают при любой ошибке, поэтому мне не нужно продолжать транзакцию верхнего уровня, если какой-либо из нижних не работает.
Чтобы использовать точки сохранения в этом случае, мне придется изменить существующие сценарии и их запуск. В этом конкретном случае, если бы это было сделано, я бы просто удалил блок транзакции start/end из всех моих скриптов и добавлю его отдельно, что упростит выполнение нескольких действий сразу. Спасибо! – 2008-10-16 14:28:03