PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wywołanie funkcji lub procedury składowanej nie spowoduje wstawienia i utrwalenia zmian

Ten konkretny przypadek użycia jest wyróżniony w „Zrozumieniu automatycznego zatwierdzania”:

Pełna kontrola nad zachowaniem „autocommit” jest dostępna za pomocą generatywnego Connection.execution_options() metoda podana w Connection , Engine , Executable , używając flagi „autocommit”, która włącza lub wyłącza automatyczne zatwierdzanie dla wybranego zakresu. Na przykład text() konstrukcja reprezentująca procedurę składowaną, która zatwierdza może jej użyć, tak aby instrukcja SELECT wywołała COMMIT:

engine.execute(text("SELECT my_mutating_procedure()").execution_options(autocommit=True))

Sposób, w jaki funkcja automatycznego zatwierdzania SQLAlchemy wykrywa operacje zmiany danych, polega na tym, że dopasowuje instrukcję do wzorca, szukając elementów takich jak UPDATE, DELETE i tym podobnych. Nie jest możliwe wykrycie, czy przechowywana funkcja/procedura wykonuje mutacje, dlatego zapewniona jest wyraźna kontrola nad automatycznym zatwierdzaniem.

Sekwencja jest zwiększana nawet w przypadku niepowodzenia, ponieważ nextval() i setval() połączenia nigdy nie są cofane.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetlanie obrazu w IReports przy użyciu PostgreSql

  2. Tworzenie konfiguracji replikacji PostgreSQL na Debianie / Ubuntu

  3. Tworzenie użytkownika z zaszyfrowanym hasłem w PostgreSQL

  4. Deklaratywny SQLAlchemy:definiowanie wyzwalaczy i indeksów (Postgres 9)

  5. Sterownik JDBC PostgreSQL z systemem Android