SQL删除操作问题,3点时一个错误导致数据库资料完全混乱,那我想删除今天3点后的操作,需要啥语句?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL删除操作问题,3点时一个错误导致数据库资料完全混乱,那我想删除今天3点后的操作,需要啥语句?相关的知识,希望对你有一定的参考价值。
如果你之前有过备份,并且没有删除日志,就可以用"通过日志还原"来生成3点以前的"正确的数据库"。理论上就是用以前的备份为基础,执行备份时间至“指定时间”段内日志记录的操作。具体的执行步骤网上很多介绍,示例也有。
为了防止错误,最好将现在的数据库文件也拷贝一份出来以备不测。 参考技术A delete from table where date > '2012-02-18 15:00'
date是你数据中的记录日期 的那列名,时间格式,你看表里的时间格式
删除前备份一下数据库 参考技术B sql数据恢复,搜一下,有软件。
SQLite 删除表导致数据库被锁定错误
【中文标题】SQLite 删除表导致数据库被锁定错误【英文标题】:SQLite Drop Table Causes Database is Locked Error 【发布时间】:2014-06-23 05:31:04 【问题描述】:我创建了一个小的数据库升级工具来根据 PRAGMA user_version 更新我们的 sqlite 数据库表。它一直运行良好,直到最近我需要完全删除一个表。
显然drop table命令是
DROP TABLE tbl;
sql指令的执行使用:
NSString *currentUpdateStatement = [upgradeStatements objectAtIndex:statementNumber];
DLog(@"Update statement is: %@", currentUpdateStatement);
const char *sql_stmt = [currentUpdateStatement UTF8String];
char *errMsg;
//Start executing the upgrade command
if (sqlite3_exec(self.database, sql_stmt, NULL, NULL, &errMsg) == SQLITE_OK)
DLog(@"Upgrade statement %i successful", statementNumber);
else
NSString *errorMessage = [NSString stringWithUTF8String:errMsg];
ELog(@"Upgrading failed at statement %i in version %i. Message: %@",
statementNumber, newVersionNumber, errorMessage);
[NSException raise:@"Database upgrade failed"
format:@"Database could not be upgraded to version %i. "
"Failed at command %i due to error '%@'",newVersionNumber, statementNumber, errorMessage];
每次我尝试运行删除表命令时,执行都会失败并显示“数据库已锁定”,结果为 SQLITE_LOCKED。
所有其他命令都很好。我试图一遍又一遍地阅读 SQL 文档,但没有成功。 大家觉得呢?
【问题讨论】:
其他一些数据库连接有一个活动事务。 @CL 数据库只被应用程序中的1个实例使用,数据库升级完成后才返回,所以不能有另一个活动事务。 你假设什么都没关系;数据库认为还有另一个事务。 @hishamaus 你找到解决方案了吗。我也有同样的问题。 【参考方案1】:在前面的事务之后缺少 sqlite3_finalize(statement) 可能会导致此错误。
【讨论】:
根据 SQLite3 文档,sqlite3_exec 是执行 sqlite3_prepare_v2()、sqlite3_step() 和 sqlite3_finalize() 的包装语句,我假设我不需要调用 finalize。 @hishamaus 你在使用sqlite3_exec
吗?
@CL 实际上刚刚开始使用上面的代码。我尝试了正常的准备步骤 finalize 和这个,都没有工作。需要注意的一点是,如果未触及表,则 drop 命令将正常工作(如果先前插入和删除了记录,则认为它已触及)以上是关于SQL删除操作问题,3点时一个错误导致数据库资料完全混乱,那我想删除今天3点后的操作,需要啥语句?的主要内容,如果未能解决你的问题,请参考以下文章
java程序,每隔3秒查询30条数据出来,对每条数据进行处理,处理完删除数据,查询数据时有时候报异常
ABAP中,用Ranges定义的内表,由于数据量大导致运行错误