我想在android中创建一列AUTOINCREMENT值。我尝试了以下方法,但失败了。我希望列在添加新记录时自动自动递增。

当我在game_id中包含“ AUTOINCREMENT”时,出现异常“无法将只读数据库从版本0升级到25”。

 db.execSQL("CREATE TABLE Games (" +
                    "_id INTEGER PRIMARY KEY AUTOINCREMENT," +
                    "game_id INTEGER **AUTOINCREMENT**," +
                    "title TEXT" +
                    ");");

最佳答案

在SQLite中,关键字autoincrement仅修改选择下一个空整数主键的算法的行为。它的行为不符合您的期望。抱歉。
我唯一能想到的解决方案是通过编程来完成所需的操作,并将唯一约束添加到game_id字段中

See Documentation Here

`CREATE table Games (_id integer primary key autoincrement, game_id integer unique, title text)`;


这在sqlite3中有效,但是如果您输入表中已有的内容,则应尝试捕获错误。根据您要执行的操作,另一种可能性是创建另一个表。

09-10 06:09