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

Postgres chỉ chèn hàng nếu số hàng dưới một giới hạn

Sự cố này được gọi là Phantom Read :

Hãy thử

BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
INSERT INTO mytable (myvalue, mykey) SELECT 'randomvalue', 1 WHERE
    (SELECT COUNT(*) FROM mytable WHERE mykey = 1) < 5;
END;

Mức cô lập giao dịch sẽ đảm bảo rằng các giao dịch sẽ chỉ chèn các giá trị nếu số lượng nhỏ hơn 5.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ mục duy nhất một phần PostgreSQL và nâng cấp

  2. Cách truyền varchar thành boolean

  3. 3 cách liệt kê tất cả các thủ tục được lưu trữ trong cơ sở dữ liệu PostgreSQL

  4. Tìm kiếm trên nhiều bảng và cũng hiển thị tên bảng trong các hàng kết quả

  5. Postgresql:Làm thế nào để thoát khỏi các dấu ngoặc kép trong trình kích hoạt Cơ sở dữ liệu?