PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Memanggil fungsi atau prosedur yang tersimpan tidak akan memasukkan dan mempertahankan perubahan

Kasus penggunaan khusus ini dipilih dalam "Memahami Autocommit":

Kontrol penuh atas perilaku "komit otomatis" tersedia menggunakan Connection.execution_options() generatif metode yang disediakan di Connection , Engine , Executable , menggunakan tanda "komit otomatis" yang akan mengaktifkan atau menonaktifkan komit otomatis untuk cakupan yang dipilih. Misalnya, sebuah text() konstruksi yang mewakili prosedur tersimpan yang komit mungkin menggunakannya sehingga pernyataan SELECT akan mengeluarkan KOMIT:

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

Cara SQLAlchemy autocommit mendeteksi operasi perubahan data adalah dengan mencocokkan pernyataan dengan pola, mencari hal-hal seperti UPDATE, DELETE, dan sejenisnya. Tidak mungkin untuk mendeteksi jika fungsi/prosedur yang disimpan melakukan mutasi, dan kontrol eksplisit atas autocommit disediakan.

Urutan bertambah bahkan pada kegagalan karena nextval() dan setval() panggilan tidak pernah dibatalkan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Urutan tanpa celah PostgreSQL

  2. Kueri parameter (pengaturan postgresql.conf) seperti max_connections

  3. Apakah mungkin untuk mengubah urutan alami kolom di Postgres?

  4. Indeks GIN pada kolom smallint[] tidak digunakan atau operator kesalahan tidak unik

  5. Masukkan data dan atur kunci asing dengan Postgres