Tôi muốn thêm một ràng buộc kiểm tra vào một bảng rất lớn. Cái gì đó như:
ALTER TABLE "accounts" ADD CONSTRAINT "positive_balance" CHECK ("balance" >= 0);
Thật không may, khối PostgreQuery 9.3 đọc hoặc ghi cho đến khi hoàn thành kiểm tra ràng buộc. Tôi đã xác minh điều này bằng cách bắt đầu một giao dịch, chạy ALTER TABLE
, sau đó mở giao dịch thứ hai và kiểm tra xem tôi không thể đọc hoặc ghi từ bảng cho đến khi giao dịch đầu tiên hoàn thành.
Có cách nào tôi có thể thêm CHECK
ràng buộc này mà không khóa bảng không?