Написание скрипта, который срабатывает полностью или не работает вообще

В задачи администратора БД входит координирование последова­тельности изменений. И большим плюсом PostgreSQL в данном слу­чае является система транзакций, когда почти все изменения можно выполнить в рамках одной транзакции. Это позволяет создать такой скрипт, который будет выполняться либо полностью, либо никак. Для рабочей системы это может быть очень важно.
Транзакции применяются к DDL, то есть к набору команд SQL для определения, изменения и удаления объектов баз данных. Термин DDL уже довольно старый, но его до сих пор используют как удобную замену названий команд, необходи­мых любому администратору: Create, alter, drop и т. п. Если хотя бы одна команда в скрипте вызовет сообщение об ошибке или что-то более серьезное, скрипт не будет выполнен. Практически все команды SQL, определяющие объекты, позволяют избе­жать ошибок сброса.
Как правило, у команд, начинающихся с drop, есть опция if exists, что позволяет выполнять команду drop вне зависимости от того, су­ществует ли такой объект. После выполнения команды его в любом случае не будет. Аналогично у команды Create Есть опциональный суффикс Or replace. Таким образом, если определение уже существует, его можно переписать, если нет — создать новое: Можно подумать, что если есть Drop if exists и create or replace, То достаточно использования Create or replace. Однако, если вы из­меняете определение результата функции или представления, то не­обходимо сначала использовать Drop, А затем Create:
PostgreSQL берет первый begin и первый commit . Таким образом, если вы хотите использовать в скрипте ко­манды транзакций, создание обертки более высокого уровня может вызвать проблемы. Но ни одно из этих действий не нужно производить регулярно, вручную или в составе более сложных программ, так что дополни­тельных проблем возникнуть не должно.



Рубрика: Женский интерес

Комментарии закрыты.