Giả sử tôi đang làm một cái gì đó như thế này (từ Active Record Querying guide)khi nào là một khóa bi quan được phát hành trong đường ray?
Item.transaction do
i = Item.first(:lock => true)
i.name = 'Jones'
i.save
end
là khóa tự động phát hành vào cuối của giao dịch? Tôi đã xem hướng dẫn Truy vấn hoạt động và số ActiveRecord::Locking::Pessimistic docs và không thể tìm thấy nơi hiển thị rõ ràng vị trí khóa được giải phóng.
Cảm ơn. Tôi đang sử dụng mySQL vì vậy tôi đã tìm kiếm nó trong các tài liệu đó và nó nói rằng khóa được phát hành khi giao dịch cam kết hoặc quay trở lại. Tôi không biết nó hoạt động như thế nào bên ngoài một giao dịch. – user26270
"Khóa không phải là chức năng của đường ray" - Khóa lạc quan là, trong khi khóa bi quan dựa trên sự hỗ trợ mức thấp từ DB. – Felixyz
Nó khóa toàn bộ cơ sở dữ liệu ??! – AjaxLeung