我一直试图找出为什么我的自动增量id列不起作用。该表插入正常,但是,一旦我尝试插入另一行,id列就不会递增。它只是尝试插入id为0的下一行。任何帮助都将非常感谢!
下面是db_namecSQL()方法中的列元数据(名称和类型)和我的create table sql:
ID(BaseColumns._ID, "INTEGER"),
YEAR("year", "real"),
MAKE("make", "text"),
MODEL("model", "text"),
STYLE("style", "text"),
COLOR("color", "text"),
ALT_COLOR("altColor", "text"),
CLASS("class", "text"),
CLASS_CODE("classCode", "text");
db.execSQL("CREATE TABLE " + TABLE_NAME + " ("
+ Columns.ID.getName() + " " + Columns.ID.getType()+ " PRIMARY KEY AUTOINCREMENT" + ", " + Columns.YEAR.getName() + " " + Columns.YEAR.getType() + ", "
+ Columns.MAKE.getName() + " " + Columns.MAKE.getType() + ", "
+ Columns.MODEL.getName() + " " + Columns.MODEL.getType() + ", "
+ Columns.STYLE.getName() + " " + Columns.STYLE.getType() + ", "
+ Columns.COLOR.getName() + " " + Columns.COLOR.getType() + ", "
+ Columns.ALT_COLOR.getName() + " " + Columns.ALT_COLOR.getType() + ", "
+ Columns.CLASS.getName() + " " + Columns.CLASS.getType() + ", "
+ Columns.CLASS_CODE.getName() + " " + Columns.CLASS_CODE.getType() + ");");
答案 0 :(得分:2)
01-16 05:51:09.882: E/Database(1177): Error inserting model=SHELBY CONV. style= _id=0 color=KONA BLUE classCode=JCA class=JCA - 2012-15 - ALL year=2012 altColor= make=FORD
01-16 05:51:09.882: E/Database(1177): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
您不应在插入中定义ID列值,如异常中的_id=0
所示。 Autoincrement only works if the column value is not specified:
如果在插入上没有指定ROWID,或者指定的ROWID的值为NULL,则会自动创建适当的ROWID。
答案 1 :(得分:0)
我发现当将ContentValues发送到context.getContentResolver()。insert(uri,values)方法时,您的ContentValues不应包含包含id的键/值对。这是导致我的_id列不自动增加的原因。