2011-04-12 62 views
4

我想在sqlite3中使用fts3创建一个虚拟表,并有一列作为自动增量,但是当插入值时,列没有被填充。 代码:SQLite3 fts3 AUTOINCREMENT不工作

CREATE VIRTUAL TABLE contact 
USING fts4(
    id INTEGER PRIMARY KEY AUTOINCREMENT, 
    name TEXT); 

当插入:插入联系人(姓名)值(“ABC”)的“ID”字段是没有得到增加,并期待在表中的数据只
| ABC

是自动增量不支持sqlite3的fts3?

问候,
约翰

回答

3

我找到了这个问题的答案在另一个问题here

简短的回答是使用的FTS3表的id列“ROWID”(特列) 。 不确定您是否可以引用rowid列,因为我还没有尝试过。

希望这可以解决您的问题。 :)

1

在创建FTS'虚拟表'时,它忽略列名(除了列名(例如自动增量,主键,唯一,甚至整数))以外的所有内容。 FTS表的所有内容都只是文本。它在没有错误的情况下读取这些关键字,但它们只是每个文档的“含糖语法”。

http://www.sqlite.org/fts3.html