gpt4 book ai didi

Android SQLite 虚拟表 ID 值不自动递增,返回 null

转载 作者:行者123 更新时间:2023-11-30 02:56:54 24 4
gpt4 key购买 nike

我有一个 SQLite 虚拟表,我意识到它不会自动递增 _id 参数,而是重复将值填充为 null。

这是我的表格代码

// Chat History Table
public static String ID = "_id";
public static String MESSAGE = "message";
public static String BUSINESS = "business";
public static String TIMESTAMP = "timestamp";
public static String FROMTO = "fromto";
public static String READ = "read";
public static String LOGGED = "logged";
public static String AGENT = "agent_id";
public static String AGENT_NAME = "agent_name";

// Logging Values
public static int LOG_SENDING = 2;
public static int LOG_SENT = 1;
public static int LOG_FAILED = 0;

public static final String TABLE_CREATE = "CREATE VIRTUAL TABLE " + TABLE
+ " USING fts3 (" + ID + " INTEGER PRIMARY AUTOINCREMENT, " + READ
+ ", " + BUSINESS + ", " + MESSAGE + ", " + TIMESTAMP + ", "
+ AGENT_NAME + ", " + AGENT + ", " + LOGGED + ", " + FROMTO + ")";

游标的日志消息,用于检查返回的内容

04-16 23:53:17.612: D/MessagingActivity(6313): timestamp=1397672593064 message=I know _id=null fromto=0 read=0 logged=null agent_id=null agent_name=Aakrit business=55

logged 和 agent_id 为 null 是设计使然,但 id 不是

最佳答案

问题出在代表每一行的唯一标识符的列 _id 上。 FTS3 表 有一个特殊的列(它是隐藏的)称为 rowid,您应该使用该列而不是 _id 列来获取行的标识符。

所以你可以试试这个:

select rowid, * from YourTable

现在它应该返回正确的 id 值,而不是像以前那样返回 null。这是 official documentation .希望它能解决您面临的问题。

关于Android SQLite 虚拟表 ID 值不自动递增,返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23117418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com