在Android SQLite中,我只有一个表MyTable
。错误地,我在升级数据库后删除了它。
如果有可能,我该如何回滚掉的那张 table 。
任何好的答案都会被接受。
谢谢。
最佳答案
删除表不是可恢复的操作,除非作为回滚的事务的一部分执行(对于您的特定情况,这似乎不是这种情况)。
从SQLite documentation:
这还不完整,因为可以通过(在https://sqliteonline.com/上测试)可以看到回滚事务下的行为:
drop table if exists paxtable;
create table paxtable (paxcolumn integer);
insert into paxtable values (42);
begin transaction;
drop table paxtable;
rollback;
select paxcolumn from paxtable;
这表明该表在回滚后仍然存在。如果您提交而不是回滚(或者如果您完全删除了事务控制),则表已死,过期,去见其制造商,改掉了这个致命的线圈,。因此,由于您没有将它作为回滚事务的一部分进行处理(事实证明表实际上已经消失了),因此您需要从头开始创建它(如果可能的话,也可以从备份中重新创建)。