Bạn có thể hướng dẫn điều này bằng cách lấy LOCK
trên bàn, thiết lập các giao dịch của bạn, sau đó giải phóng khóa bằng cách quay trở lại giao dịch đã bị khóa. Xem câu trả lời trước này
và các liên kết của nó để biết chi tiết về cách tiếp cận này. Trong khi tôi đã trình diễn nó bằng ba psql
các phiên cũng khả thi như nhau để làm điều đó với các quy trình đồng xử lý, một tập lệnh Python sử dụng psycopg2
và đa xử lý
hoặc phân luồng
mô-đun, v.v. Khá đơn giản để làm. Cập nhật :Trên thực tế đây là ví dụ tôi vừa viết bằng python3 .
Đối với các bài kiểm tra phức tạp hơn, hãy lấy mã nguồn PostgreSQL và sử dụng công cụ "isolationtester" trong src / test / isol
cho phép bạn viết các công thức thực hiện các chuỗi lệnh phức tạp. Nó không hỗ trợ được xây dựng bằng PGXS
(mặc dù hỗ trợ như vậy có lẽ sẽ khá nhỏ để thêm vào) vì vậy bạn phải biên dịch toàn bộ cây nguồn PostgreSQL, nhưng điều đó đủ nhanh. Nó sẽ chạy dựa trên PostgreSQL hiện có của bạn nên không cần cài đặt cái mà bạn đã biên dịch.
Xem src / test /olation / README
để biết thêm về công cụ bộ kiểm tra cách ly. Các tài liệu trên thực tế hơi mỏng vì đây là một công cụ kiểm tra nội bộ, nhưng các trường hợp kiểm tra hiện có sẽ giúp bạn bắt đầu. Hãy cải thiện nó để đáp ứng nhu cầu của bạn và gửi các bản vá lỗi :)