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

PostgreSQL mendapatkan dan melepaskan LOCK di dalam fungsi tersimpan

Di Postgres 11 atau lebih baru, pertimbangkan PROCEDURE yang memungkinkan kontrol transaksi. Lihat:

Dengan fungsi , tidak ada tidak mungkin . Fungsi di Postgres bersifat atomik (selalu di dalam transaksi) dan kunci dilepaskan di akhir transaksi.

Anda mungkin dapat mengatasi ini dengan saran kunci . Tapi itu bukan hal yang sama. Semua transaksi yang bersaing harus dimainkan bersama. Akses bersamaan yang tidak mengetahui kunci penasehat akan merusak pesta.

Contoh kode di dba.SE:

Atau Anda mungkin mendapatkan suatu tempat dengan "kecurangan" transaksi otonom dengan dblink:

Atau Anda menilai kembali masalah Anda dan membaginya menjadi beberapa transaksi terpisah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Heroku Rails 4 tidak dapat terhubung ke server:koneksi ditolak

  2. Apakah mungkin untuk Menghitung dengan kondisi yang berbeda dalam satu permintaan?

  3. Bagaimana Acos() Bekerja di PostgreSQL

  4. kesalahan pg_restore:peran XXX tidak ada

  5. Apakah ada opsi untuk bergabung ke tabel untuk asosiasi banyak-ke-banyak?