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

tuple được cập nhật đồng thời khi tạo các hàm trong postgresql / PL / pgSQL

Như được mô tả tại đây , postgres hiện không cho phép bạn sử dụng CREATE FUNCTION đồng thời:

Giải pháp cho điều này là đảm bảo rằng không có hai giao dịch nào cố gắng thực hiện CREATE FUNCTION đồng thời.

Bạn có thể sử dụng khóa tư vấn posgres cho điều đó.

Bạn có thể tìm thấy phần giới thiệu hay về khóa tư vấn tại đây: https://vladmihalcea .com / how-do-postgresql -visory-lock-work /

Ví dụ:bạn có thể sử dụng:

BEGIN; -- start of transaction

SELECT pg_advisory_xact_lock(2142616474639426746); -- random 64-bit signed ('bigint') lock number

CREATE OR REPLACE FUNCTION myfunction ...

COMMIT;

Điều này có một khóa tư vấn độc quyền ở cấp độ giao dịch, để không có hai giao dịch đồng thời nào có thể chạy chức năng này cùng một lúc. Khi kết thúc giao dịch, khóa sẽ tự động được giải phóng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng lại một giá trị được mã hóa cứng trong nhiều lệnh gọi hàm trong truy vấn PostgreSQL

  2. Không thể lưu trữ Euro-sign vào thuộc tính LOB String với Hibernate / PostgreSQL

  3. Tạo cơ sở dữ liệu bằng cách sử dụng một chức năng được lưu trữ

  4. Thứ tự của các bảng trong một phép nối có quan trọng không khi các phép nối LEFT (bên ngoài) được sử dụng?

  5. PostgreSQL 'KHÔNG VÀO' và truy vấn con