sqlite - Sqlite FTS5 与 Electron 应用程序中的任何内容都不匹配
问题描述
我正在制作一个 Electron 的笔记应用程序,使用 sqlite3(v3.31.0) 作为后端。这是我对普通表的创建语句Note
:
create table `Note` (
`id` char(36),
`icon` text not null,
`title` text not null,
`body` text not null,
`parentId` char(36) not null,
`sortOrder` integer not null,
`userCreatedAt` datetime not null,
`userModifiedAt` datetime not null,
`childrenSortBy` text check (`childrenSortBy` in ('DEFAULT', 'TITLE', 'CREATED_AT', 'UPDATED_AT', 'CUSTOM')) not null,
`childrenSortDirect` text check (`childrenSortDirect` in ('ASC', 'DESC', 'DEFAULT')) not null,
foreign key(`parentId`) references `Note`(`id`),
primary key (`id`)
)
这是我对虚拟表的创建语句:
CREATE VIRTUAL TABLE Note_FTS USING fts5(
title,
body,
content='Note'
);
CREATE TRIGGER Note_FTS_ai AFTER INSERT ON Note BEGIN
INSERT INTO Note_FTS(
rowid,
title,
body
) VALUES (
new.rowid,
new.title,
new.body
);
END;
CREATE TRIGGER Note_FTS_ad AFTER DELETE ON Note BEGIN
INSERT INTO Note_FTS(
Note_FTS,
rowid,
title,
body
) VALUES(
'delete',
old.rowid,
old.title,
old.body
);
END;
CREATE TRIGGER Note_FTS_au AFTER UPDATE ON Note BEGIN
INSERT INTO Note_FTS(
Note_FTS,
rowid,
title,
body
) VALUES(
'delete',
old.rowid,
old.title,
old.body
);
INSERT INTO Note_FTS(
rowid,
title,
body
) VALUES (
new.rowid,
new.title,
new.body
);
END;
Note
创建后,我在表中插入了一行,Note_FTS
并由触发器填充:
到目前为止,一切都很好。但是当我使用查询时:
SELECT *
FROM Note_FTS
WHERE Note_FTS MATCH 'aaa';
Sqlite 返回 0 行作为结果。我错过了什么或做错了什么吗?
解决方案
推荐阅读
- powershell - 列出可以安装的 PSSnapins
- django - 如何根据另一个字段的查找在 django admin 中设置字段值?
- ruby-on-rails - 实现了 `tagged_with` 方法返回所有微博
- visual-studio-code - 内置的 Markdown 快捷方式消失了
- python-3.x - 发现以下规范存在冲突:
- html - CSS背景颜色属性不起作用
- android - 我可以使用 Webview 从网站下载 pdf 文件吗?
- tendermint - 三个 Tendermint 应用程序状态
- java - 演示使用 ReadWriteLock 的示例
- c++ - 什么会导致使用 LB_GETITEMRECT 只返回项目的顶部和底部尺寸?