5

我正在使用现有的 db 文件sqlite3。特定表中的一列是有子句COLLATE NOCASE_UTF8。我无法在该字段中插入任​​何文本。它给出以下错误:

sqlite> INSERT INTO recording (recordingName) VALUES ('abcd');
Error: no such collation sequence: NOCASE_UTF8

我应该如何在其中输入文字?

4

1 回答 1

2

那是自定义排序规则。SQLite 原生支持名为“NOCASE”的排序规则,但不支持名为“NOCASE_UTF8”的排序规则。我认为您遇到了错误,因为您的 SQLite 数据库中没有定义这样的排序规则,但是该排序规则名称仍作为表定义的一部分存储。

我不确定 SQLite 如何处理通过 C API 定义的排序规则的存储。但我很确定这就是你需要解决的问题。另请参阅Collat​​ion Needed Callbacks的文档。(您可能只需要一次调用 sqlite3_collat​​ion_needed()。)

于 2013-04-19T11:18:53.063 回答