我正在使用现有的 db 文件sqlite3
。特定表中的一列是有子句COLLATE NOCASE_UTF8
。我无法在该字段中插入任何文本。它给出以下错误:
sqlite> INSERT INTO recording (recordingName) VALUES ('abcd');
Error: no such collation sequence: NOCASE_UTF8
我应该如何在其中输入文字?
我正在使用现有的 db 文件sqlite3
。特定表中的一列是有子句COLLATE NOCASE_UTF8
。我无法在该字段中插入任何文本。它给出以下错误:
sqlite> INSERT INTO recording (recordingName) VALUES ('abcd');
Error: no such collation sequence: NOCASE_UTF8
我应该如何在其中输入文字?
那是自定义排序规则。SQLite 原生支持名为“NOCASE”的排序规则,但不支持名为“NOCASE_UTF8”的排序规则。我认为您遇到了错误,因为您的 SQLite 数据库中没有定义这样的排序规则,但是该排序规则名称仍作为表定义的一部分存储。
我不确定 SQLite 如何处理通过 C API 定义的排序规则的存储。但我很确定这就是你需要解决的问题。另请参阅Collation Needed Callbacks的文档。(您可能只需要一次调用 sqlite3_collation_needed()。)