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

PostgreSQL lấy và phát hành LOCK bên trong hàm được lưu trữ

Trong Postgres 11 trở lên, hãy xem xét một PROCEDURE cho phép kiểm soát giao dịch. Xem:

Với chức năng , không có cách nào . Các chức năng trong Postgres là nguyên tử (luôn bên trong giao dịch) và khóa được phát hành khi kết thúc giao dịch.

Bạn có thể giải quyết vấn đề này với tư vấn ổ khóa . Nhưng những điều đó không giống nhau. Tất cả các giao dịch cạnh tranh phải chơi cùng. Quyền truy cập đồng thời mà không biết về các khóa tư vấn sẽ làm hỏng nhóm.

Ví dụ về mã trên dba.SE:

Hoặc bạn có thể đến đâu đó với các giao dịch tự trị "gian lận" với dblink:

Hoặc bạn đánh giá lại vấn đề của mình và chia nó thành một vài giao dịch riêng biệt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuẩn hóa bảo mật PostgreSQL trên môi trường đa đám mây

  2. Không có lời nhắc mật khẩu cho postgresql superuser

  3. Cách cho phép truy cập từ xa vào cơ sở dữ liệu PostgreSQL

  4. Toán tử tìm kiếm cụm từ <-> có hoạt động với tài liệu JSONB hay chỉ các bảng quan hệ không?

  5. Chuyển các hàm SQL trong hàm lọc dplyr trên cơ sở dữ liệu