2013-02-05 14 views
5

W Android SQLite miałem jedną tabelę MyTable. Przez pomyłkę upuściłem go po aktualizacji DB.SQLIte DROP table ROLL back

Jak mogę WRÓCIĆ tę opuszczoną tabelę, jeśli jest to możliwe.

Każda dobra odpowiedź zostanie przyjęta.

Dzięki.

+0

związane: https: // stackoverflow.com/questions/454942/undelete-accidentally-deleted-records-in-sqlite3 –

Odpowiedz

2

Zrzucanie tabel nie jest działaniem zwrotnym.

Z SQLite documentation:

Instrukcja DROP TABLE usuwa tabelę dodaną ze stwierdzeniem Utwórz tabelę. Podana nazwa jest nazwą tabeli.

Zrzucona tabela jest całkowicie usunięta ze schematu bazy danych i pliku dysku. Tabeli nie można odzyskać. Wszystkie indeksy i wyzwalacze powiązane z tabelą również są usuwane.

Jeśli chcesz odzyskać dane, musisz je ponownie utworzyć od podstaw (lub, jeśli to możliwe, z kopii zapasowych).

+0

co to jest scratch. – Unknown

+0

@Cobra: "od zera", co oznacza "od początku". – paxdiablo

+0

ohh dzięki, mam to. – Unknown

3

Niestety, nie.

Możesz zatwierdzać lub wycofywać instrukcje DML, takie jak "wstaw" lub "usuń" (pod warunkiem, że robisz to w ramach transakcji).

Niestety, nie można wycofać instrukcji DDL, takiej jak "alter table" lub "drop table".

Z instrukcji:

Instrukcja DROP TABLE usuwa tabelę dodany z create table oświadczeniu. Podana nazwa jest nazwą tabeli. Zrzucona tabela jest całkowicie usunięta ze schematu bazy danych i pliku dysku. Tabela nie może zostać odzyskana. Wszystkie indeksy i wyzwalacze powiązane z tabelą są również usuwane.

PS:

Ten link omawia "DDL", "DML" i związanych akronimów, jeśli jesteś zainteresowany:

+0

dzięki za odpowiedź Paul. – Unknown

+1

To nie jest prawda. Jeśli wydasz komentarz DROP TABLE w transakcji, możesz go odzyskać, wykonując ROLLBACK. Jednak nie sądzę, że tak właśnie działa OP, więc nie jest to tak naprawdę związane z jego pytaniem. –