sqlite数据库迁移(恢复数据库)
发布时间:2020-12-13 00:13:12 所属栏目:百科 来源:网络整理
导读:方法一:使用sqlite3.exe工具 在DOS命令下,进入相应目录,执行(执行前先装要恢复的数据库复制到sqlite3.exe相同目录下:storeDatabase.db3) 1.获取信息 sqlite storeDatabase.db3 sqlitePRAGMA integrity_check 获得提示 "*** in database main *** Page 2455: b
方法一:使用sqlite3.exe工具
在DOS命令下,进入相应目录,执行(执行前先装要恢复的数据库复制到sqlite3.exe相同目录下:storeDatabase.db3) 1.获取信息 sqlite storeDatabase.db3 sqlite>PRAGMA integrity_check 获得提示 "*** in database main *** Page 2455: btreeInitPage() returns error code 11 On tree page 4086 cell 122: Child page depth differs On tree page 4086 cell 123: Child page depth differs"
可以尝试通过简单的导出导入方式对损坏的库文件作回复。 2.导出数据 sqlite3 my.sqlite3 sqlite>.output tmp.sql sqlite>.dump sqlite>.quit 3.再倒入到一个新库中 sqlite3 mynew.sqlite3 sqlite>.read tmp.sql sqlite>.quit 4.总结:此方法操作很简单,但如果遇到较大的数据库时会花费很长时间.
1.获取信息 sqlite storeDatabase.db3 sqlite>PRAGMA integrity_check; 获得提示 *** in database main *** Page 1518: btreeInitPage() returns error code 11 On tree page 1566 cell 2: Child page depth differs On tree page 1566 cell 3: Child page depth differs SQL error: database disk image is malformed 可以尝试通过简单的导出导入方式对损坏的库文件作回复。 2.导出数据 sqlite3 my.sqlite3 sqlite>.output tmp.sql sqlite>.dump sqlite>.quit 3.创建一个新的数据库,并创建表(所有表与现有数据库相同) 创建数据库可以用SQLite Expert Personal(简称SQLEP)工具创建(或直接创建一个文件(后缀名为.db3)) 创建所有表:从第2步导出的数据查找到所有创建表的语句,然后在SQLEP中执行即可. 4.如果原storeDatabase数据库是格式为"UTF-16",如果要导数据到新的数据库,必须确保此属性相同 PRAGMA encoding = "UTF-16"; 5.附加原来的数据库 ATTACH 'D:/storeDatabase3.db3' AS database1
insert into T_ProductSize(C_ProductID,C_SizeValue,C_SizeName,C_SizeProperty1,C_SizeProperty2,C_SizeProperty3,C_SizeProperty4,C_SizeProperty5, C_SizeProperty6,C_SizeProperty7,C_SizeProperty8,C_SizeProperty9,C_SizeProperty10) select C_ProductID, C_SizeProperty6,C_SizeProperty10 from database1.T_ProductSize
7.复制错误数据表 1)先通过tmp.sql语句找到可以访问的数据序列值(或日期) 执行sql创建新表语句
insert into [pages] ( [id],[C_BRAND],[C_PageName],[C_Title],[C_Wares],[C_MainSort],[C_IsShowLogo],[C_IsMarketStat],[C_ShowPic],[C_AccountBookID] ,[C_Keywords],[C_WareKeys],[C_WareTypes],[C_OrderType],[C_WareBrands],[C_Colors],[C_Prices],[C_Sex],[C_IsNews] ,[C_IsSpecials],[C_LenStyles],[C_Styles],[C_CreateTime],[C_IsHide],[C_HideTime],[C_IsCstHot],[C_NeckLines],[C_Colours] ,'C_IsChangeColor1','C_IsChangeColor2','C_OrderAllows','C_OrderMadeAllows','C_TryZheng','C_TryFan') select [id],[C_Colours] ,'C_TryFan' from database1.Pages where id<3040 3)最后插入剩下的部分数据 INSERT INTO pages VALUES(....); INSERT INTO pages VALUES(....); INSERT INTO pages VALUES(....); .... 此方法执行速度快,适合大数据库的转移(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |