PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

tại sao postgres đưa ra lỗi cập nhật hàng đồng thời khi tôi đang khóa toàn bộ bảng một cách rõ ràng

Cảm ơn nhận xét của @ sudo ở trên, Nếu tôi đã chuyển các câu lệnh như thế này:

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;

thì có vẻ như để tránh vấn đề, tôi đã sử dụng dữ liệu lớn (thực sự đã làm giả nó với các vòng lặp lặp lại qua cùng một dữ liệu). Xin lưu ý rằng nó có thể không phải là cách hiệu quả nhất để làm việc này, nhưng, nó hoạt động. Sự cố với lần thử được đưa ra trong câu hỏi là khóa có thể chỉ giới hạn trong giao dịch mà nó được xác định và do đó việc tạo chức năng vẫn nằm ngoài phạm vi của nó, tức là không bị khóa, do đó xung đột xuất hiện. Nhưng, tất cả có vẻ ổn và đẹp đẽ bây giờ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra KHÔNG ĐẦY ĐỦ cho một bản ghi không trả về TRUE khi biến được đặt

  2. Lỗi ngôn ngữ postgres

  3. Cách chèn dòng mới trong PostgreSQL

  4. Đếm số ngày giữa 2 ngày trong JPA

  5. Làm thế nào để làm việc với PGpoint cho Định vị địa lý bằng PostgreSQL?