Tôi phải đối mặt với một vấn đề tương tự nhiều lần (trong trường hợp của tôi không thể quay lại) khi tôi ở trong vòng lặp qua các mục bảng. Miễn là con trỏ đang xử lý các mục, một câu lệnh SQL đang "đang tiến hành". Tôi không biết chính xác, nếu điều này cũng cấm cam kết, nhưng nó có thể được.
Khi bạn cố xử lý các mục nhập bảng và chèn các mục vào cùng một bảng hoặc bảng khác, bạn có thể muốn thu thập dữ liệu trong bộ nhớ và sau khi vòng lặp thực hiện chèn hoặc cập nhật.
Thông tin bổ sung: "Tự động" thường mặc định là "Đúng" trong SQLite (tất nhiên cũng có thể phụ thuộc vào lớp truy cập bạn sử dụng - Tôi đang sử dụng Python và apsw, vì vậy tôi không thể cho bạn biết thêm về điều này trong Java). Điều này có nghĩa, rằng mỗi chèn được tự động ngay lập tức.
==> đây có thể là giải pháp khác. Thay vì lưu trữ dữ liệu trong bộ nhớ, bạn có thể cố gắng mở một giao dịch một cách rõ ràng và cam kết nó sau vòng lặp - theo cách này, vấn đề cũng sẽ biến mất.
Bạn có thể vui lòng đăng đoạn mã không? –
Và bạn đang chạy phiên bản SQLite nào? –
Tôi đang sử dụng phiên bản SQLite 3 –