首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite AUTO_INCREMENT

SQLite AUTO_INCREMENT
EN

Stack Overflow用户
提问于 2015-03-15 23:00:24
回答 2查看 371关注 0票数 0

我的表是这样创建的:

代码语言:javascript
复制
    db.execSQL("CREATE TABLE reminder (" +
            "id INTEGER PRIMARY_KEY AUTO_INCREMENT," +
            "title VARCHAR(100)," +
            "content VARCHAR(500)," +
            "due LONG," +
            "alarm LONG," +
            "priority INT" +
            ");");

和由以下机构插入的值:

代码语言:javascript
复制
    ContentValues cv=new ContentValues();
    cv.put("title",t.title);
    cv.put("content",t.content);
    cv.put("due",t.date.getTimeInMillis());
    cv.put("alarm",(t.alarm==null?0L:t.alarm.getTimeInMillis()));
    cv.put("priority",t.severity);
    SQLiteDatabase d=getWritableDatabase();
    d.insert("reminder",null, cv);
    d.close();

但当我试图通过以下方式获得我的价值观时:

代码语言:javascript
复制
        Task task=new Task();
        task.id=c.getInt(0);
        task.title=c.getString(1);
        task.content=c.getString(2);
        Calendar due=new GregorianCalendar();
        due.setTimeInMillis(c.getLong(3));
        task.date=due;
        if(c.getLong(4)!=0){
            Calendar alert=new GregorianCalendar();
            alert.setTimeInMillis(c.getLong(4));
            task.alarm=alert;
        }
        task.severity=c.getInt(5);
        return task;

我总是得到等于零的id。知道怎么修吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-15 23:19:56

下划线有点不合适。试试id INTEGER PRIMARY KEY AUTOINCREMENT

SQLite理解的SQL -创建表

票数 1
EN

Stack Overflow用户

发布于 2015-03-15 23:45:23

请试用此解决方案:

代码语言:javascript
复制
db.execSQL("CREATE TABLE reminder (" +
            "'_id' INTEGER PRIMARY_KEY AUTO_INCREMENT," +
            "title VARCHAR(100)," +
            "content VARCHAR(500)," +
            "due LONG," +
            "alarm LONG," +
            "priority INT" +
            ");");

更改了_id的id。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29067245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档