db-journal是日志文件,跟回滚不回滚没关系。
你不希望数据回滚?其实数据库在遇到冲突事件自动回滚的功能,是为了保护数据。这样的话,你可以回到你要导入的文件里面去,修改完善之后再导入。
其次,设主键最好是设与你的信息基本上没有关系的列作为键。对于主键的设置你可以参考网上的其他资料。
希望我的回答对你有所帮助。
该文件是sqlite的一个临时的日志文件,主要用于sqlite数据库的事务回滚 *** 作了。在事务开始时产生,在事务 *** 作完毕时自动删除,当程序发生崩溃或一些意外情况让程序非法结束时,此文件便保存在了磁盘上,以便下次运行时进行事务回滚。而android自己的一些机制,又使*.db-journal一直存在。即第一次 *** 作数据库时,*.db-journal文件会被自动创建,且是永久的保存在磁盘中,不会被自动清除的,如果没有 *** 作异常或者不需要事务回滚时,此文件的大小为0。这种机制避免了每次生成和删除*.db-journal文件的开销
在SQLite中,如果没有为当前的SQL命令(SELECT除外)显示的指定事务,那么SQLite会自动为该 *** 作添加一个隐式的事务,以保证该 *** 作的原子性和一致性。当然,SQLite也支持显示的事务,其语法与大多数关系型数据库相比基本相同。见如下示例:sqlite>BEGIN TRANSACTION
sqlite>INSERT INTO testtable VALUES(1)
sqlite>INSERT INTO testtable VALUES(2)
sqlite>COMMIT TRANSACTION --显示事务被提交,数据表中的数据也发生了变化。
sqlite>SELECT COUNT(*) FROM testtable
COUNT(*)
----------
2
sqlite>BEGIN TRANSACTION
sqlite>INSERT INTO testtable VALUES(1)
sqlite>ROLLBACK TRANSACTION --显示事务被回滚,数据表中的数据没有发生变化。
sqlite>SELECT COUNT(*) FROM testtable
COUNT(*)
----------
2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)