Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite虚拟表ID值不自动递增,返回null_Android_Sqlite - Fatal编程技术网

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

Android SQLite虚拟表ID值不自动递增,返回null,android,sqlite,Android,Sqlite,我有一个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 = "time

我有一个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):时间戳=1397672593064 message=I know\u id=null fromto=0 read=0 logged=null agent\u id=null 代理名称=Aakrit业务=55


logged and agent_id为null是设计的,但是id不是

问题在于表示每行唯一标识符的列\u idFTS3表有一个名为rowid的特殊列(它是隐藏的),您应该使用该列而不是\U id列来获取行的标识符

所以你可以试试这个:

select rowid, * from YourTable
现在它应该返回正确的id值,而不是像以前一样为null。这是。 希望它能解决你面临的问题