2013-02-05 27 views
5

Trong Android SQLite Tôi có một bảng MyTable. Do nhầm lẫn, tôi đã bỏ nó sau khi nâng cấp DB.Bảng DRI SQLIte ROLL trở lại

Làm cách nào tôi có thể ROLL TRỞ LẠI bảng đã hủy nếu có thể.

Bất kỳ câu trả lời hay nào đều sẽ được chấp nhận.

Cảm ơn.

+0

liên quan: https: // stackoverflow.com/questions/454942/undelete-accidentally-deleted-records-in-sqlite3 –

Trả lời

2

Rớt bảng không phải là hành động có thể khôi phục.

Từ SQLite documentation:

Các DROP TABLE tuyên bố loại bỏ một bảng thêm với câu lệnh CREATE TABLE. Tên được chỉ định là tên bảng.

Bảng bị loại bỏ hoàn toàn khỏi lược đồ cơ sở dữ liệu và tệp đĩa. Không thể phục hồi bảng. Tất cả các chỉ mục và trình kích hoạt được liên kết với bảng cũng sẽ bị xóa.

Nếu bạn muốn dữ liệu đó quay lại, bạn sẽ cần tạo lại dữ liệu đó từ đầu (hoặc từ bản sao lưu nếu có thể).

+0

những gì là đầu. – Unknown

+0

@Cobra: "từ đầu" có nghĩa là "từ đầu". – paxdiablo

+0

ohh cảm ơn tôi đã hiểu. – Unknown

3

Rất tiếc, không.

Bạn có thể cam kết hoặc khôi phục các câu lệnh DML như "chèn" hoặc "xóa" (miễn là bạn làm điều đó trong giao dịch).

Thật không may, bạn không thể khôi phục câu lệnh DDL như "thay đổi bảng" hoặc "bảng thả".

Từ hướng dẫn:

Các DROP TABLE tuyên bố loại bỏ một bảng thêm với CREATE TABLE tuyên bố. Tên được chỉ định là tên bảng. Bảng bị bỏ là được loại bỏ hoàn toàn khỏi lược đồ cơ sở dữ liệu và tệp đĩa. Không thể khôi phục bảng . Tất cả các chỉ mục và trình kích hoạt được liên kết với bảng cũng sẽ bị xóa.

PS:

liên kết này thảo luận về "DDL", "DML" và từ viết tắt có liên quan, nếu bạn quan tâm:

+0

cảm ơn câu trả lời paul. – Unknown

+1

Điều này không đúng. Nếu bạn đưa ra một bình luận DROP TABLE bên trong một giao dịch, bạn có thể lấy lại nó bằng cách thực hiện ROLLBACK. Tuy nhiên, tôi không nghĩ đó là những gì OP đang làm, vì vậy nó không thực sự liên quan đến câu hỏi của anh ấy. –