Trong ví dụ này onUpgrade chỉ đơn giản là giọt bảng hiện tại và thay thế nó với định nghĩa mới. Đây thường là giải pháp đơn giản và thiết thực nhất; Tuy nhiên, cho dữ liệu quan trọng mà không được đồng bộ hóa với một dịch vụ trực tuyến hoặc khó có thể lấy lại, một cách tiếp cận tốt hơn có thể di chuyển dữ liệu hiện có vào bảng mới.
Để truy cập vào một cơ sở dữ liệu bằng cách sử dụng người trợ giúp mở SQLite, gọi getWritableDatabase hoặc getReadableDatabase để mở và có được một khả năng ghi hoặc đọc-chỉ thể hiện của cơ sở dữ liệu cơ bản, tương ứng.
Đằng sau hậu trường, nếu cơ sở dữ liệu không tồn tại, người trợ giúp thực hiện xử lý onCreate của nó. Nếu phiên bản cơ sở dữ liệu đã thay đổi, xử lý onUpgrade sẽ cháy. Trong cả hai trường hợp, việc có đượcableDatabase gọi sẽ trả lại cache, mới được mở ra, mới được tạo ra, hoặc nâng cấp cơ sở dữ liệu, khi thích hợp.
Khi một cơ sở dữ liệu đã được mở thành công, mở Helper SQLite sẽ cache nó, vì vậy bạn có thể (và nên) sử dụng các phương pháp này mỗi lần bạn truy vấn hoặc thực hiện một giao dịch trên cơ sở dữ liệu, chứ không phải là bộ nhớ đệm các cơ sở dữ liệu mở trong ứng dụng của bạn.
một cuộc gọi đến getWritableDatabase có thể thất bại do không gian đĩa hoặc cho phép các vấn đề, vì vậy nó là thực hành tốt để rơi trở lại với phương pháp getReadableDatabase cho các truy vấn cơ sở dữ liệu nếu cần thiết. Trong hầu hết các trường hợp, phương pháp này sẽ cung cấp cho cùng, lưu trữ cơ sở dữ liệu có thể ghi dụ như getWritableDatabase
trừ khi nó chưa tồn tại hoặc sự cho phép hoặc không gian đĩa cùng một vấn đề xảy ra, trong trường hợp này chỉ đọc chép sẽ được trả lại.
[//) Để tạo hoặc nâng cấp các cơ sở dữ liệu, nó phải được mở ra trong một hình thức thể ghi;
. Vì vậy, nó là thực hành thường tốt để cố gắng mở một cơ sở dữ liệu có khả năng ghi đầu tiên, rơi trở lại một thay thế chỉ đọc nếu nó không
mở cửa và tạo cơ sở dữ liệu nếu không có sự trợ giúp mở SQLite
Nếu bạn muốn quản lý việc tạo, mở và kiểm soát phiên bản của cơ sở dữ liệu của bạn trực tiếp, thay vì sử dụng người trợ giúp mở SQLite, bạn có thể sử dụng phương pháp openOrCreateDatabase ứng dụng bối cảnh để tạo ra cơ sở dữ liệu riêng của mình:
đang được dịch, vui lòng đợi..
