PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

СЪЗДАВАНЕ НА БАЗА ДАННИ в транзакцията

Когато го опитате, получавате грешката:

ERROR:  CREATE DATABASE cannot run inside a transaction block

Това идва от src/backend/access/transam/xact.c (ред 3023 в моите източници, но варира според версията), в PreventTransactionChain(...) .

Коментарът там обяснява следното:

За CREATE DATABASE извиква се от src/backend/tcop/utility.c в standard_ProcessUtility под случая за T_CreatedbStmt , но за съжаление няма информативен коментар, който да казва защо конкретно CREATE DATABASE не е безопасно да се изпълнява в транзакция.

Като гледам източниците, виждам, че от една страна налага контролна точка.

Като цяло обаче не виждам нищо, което наистина да крещи „не можем да направим това транзакционно“. Това е по-скоро „не сме внедрили функционалността да правим това транзакционно“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Конвертирайте django RawQuerySet в Queryset

  2. Postgres връща [null] вместо [] за array_agg на таблицата за свързване

  3. Как Mod() работи в PostgreSQL

  4. postgresql прави съществуващия първичен ключ автоматично нарастващ при вмъкване

  5. Използване на Barman за архивиране на PostgreSQL - Общ преглед