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

mengapa postgres memberikan kesalahan pembaruan baris secara bersamaan ketika saya mengunci seluruh tabel secara eksplisit

Berkat komentar @sudo di atas, Jika saya memindahkan pernyataan seperti ini:

BEGIN;    
    SELECT pg_advisory_xact_lock(2142616474639426746);
    CREATE OR REPLACE FUNCTION my_function() ....
    --the whole function definition is wrapped by an advisory lock
    SELECT * FROM my_function();
COMMIT;

maka sepertinya untuk menghindari masalah, saya telah menggunakan data besar (sebenarnya memalsukannya dengan loop berulang melalui data yang sama). Perhatikan bahwa itu mungkin bukan cara yang paling efisien untuk melakukan hal semacam ini, tetapi, itu berhasil. Masalah dengan upaya yang diberikan dalam pertanyaan adalah bahwa kunci itu mungkin hanya terbatas pada transaksi yang didefinisikan di dalamnya dan karenanya pembuatan fungsi masih di luar cakupannya yaitu tidak dikunci, karenanya konflik muncul. Tapi, semua tampak baik-baik saja dan keren sekarang.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Tanh() Bekerja di PostgreSQL

  2. Jumlah kunci json postgres

  3. Cara mengatur tingkat isolasi

  4. Sekuel bagaimana menyusun bagian obrolan aplikasi?

  5. PostgreSQL 9.4 - Gunakan operator khusus dalam batasan EXCLUDE