SQLite thực hiện bất kỳ khóa nào là cần thiết để thực hiện lược đồ giao dịch mà các câu lệnh SQL của bạn mô tả. Đặc biệt, nếu bạn không mô tả bất kỳ sau đó bạn sẽ có được hành vi tự động cam kết, với một khóa được tổ chức trong suốt thời gian của mỗi câu lệnh và sau đó giảm khi câu lệnh kết thúc. Nếu bạn cần giao dịch dài hơn (thường là đúng!) Thì bạn yêu cầu chúng một cách rõ ràng với BEGIN TRANSACTION
(thường được rút ngắn thành BEGIN
) và kết thúc bằng COMMIT TRANSACTION
(hoặc ROLLBACK TRANSACTION
). Việc xử lý giao dịch thường được bao bọc bởi giao diện ngôn ngữ của bạn (vì điều này làm cho nó dễ dàng hơn để lấy đúng, ghép nối tuổi thọ giao dịch với một khối mã hoặc gọi phương thức) nhưng ở cấp cơ sở, nó xuống đến BEGIN
/COMMIT
/ROLLBACK
.
Tóm lại, bạn đã có giao dịch. Khóa được sử dụng để triển khai các giao dịch. Bạn không có ổ khóa thô (đó là một điều tốt; họ đang khó khăn hơn để có được quyền hơn bạn có thể nghĩ từ cái nhìn đầu tiên).
Nguồn
2012-06-08 22:14:00