AnKindle导入生词卡死的补救方法

Kindle 5.8.9.2 系统的生词本有bug,一些单词通过单词本删除了之后在vocal.db数据库文件中还是能查到,但是在Kindle生词本里找不到了。就因为这个原因,导致我用AnKindle插件导入生词到Anki时出错。

这种情况下,需要在vocal.db数据库文件中删除这些本应该被删除的单词。要打开vocal.db数据库,首先需要使用sqlite工具,Mac上自带sqlite3,下面说说Mac上如何使用sqlite。

要想操作.db数据库文件,先要打开sqlite。

1
sqlite3

接下来,定位到vocal.db数据库文件的路径,使用.open命令打开数据库文件。

1
2
cd /Volumn/KINDLE/system/vocabulary/
.open dbname.db

以下是我常用的sqlite命令

1
2
3
.help			帮助信息
.tables 查看所有表
.schemas 查看所有表结构

Kindle中的生词保存在WORDS表里,我发现那些没有通过生词本删除的单词都有一个特征,都带有'单引号,比如weren't。要想删除这类单词,需要使用''两个单引号来定位单词

1
delete from WORDS where id = 'en:weren''t';

还有一个AnKindle导入生词卡死的补救技巧,通过观察在第几个卡死,记录下这个数,比方说我卡死在第831个。

1
select * from WORDS as w left join LOOKUPS as l on w.id = l.work_key limit 831;

最后一个显示的单词就是有问题的单词。

将这些本应该删除的单词全部清理完毕后,再次倒入AnKindle就没问题了。

avatar

chilihotpot

You Are The JavaScript In My HTML