saa*_*az1 2 sql sqlite android
我有一个表4个字段:_id,to,from,hidden
在尝试插入以下值时:
_id=167 from=1311005879000 to=1311005879000 hidden=0
Run Code Online (Sandbox Code Playgroud)
在我的表中,我得到了一个SQLiteConstraintException,说明了这一点
'column _id is not unique (code 19)'
Run Code Online (Sandbox Code Playgroud)
为了找到导致此问题的原因,我尝试查询表的大小并发现它为0,所以我不知道它来自何处.
也许我没有正确理解错误?
编辑:一些代码!
try {
mDatabase.insertOrThrow("groups", null,
mContentValues);
} catch (SQLException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
创建SQL:
CREATE TABLE IF NOT EXISTS groups(_id LONG PRIMARY KEY,hidden INTEGER,from LONG,to LONG
Run Code Online (Sandbox Code Playgroud)
'column _id不是唯一的(代码19)'
所以你违反了UNIQUE约束条件.这是SQLiteConstraintException的原因.您的_id列很可能是主键,主键具有隐式分配的UNIQUE约束,表示没有两行可以具有相同的主键.
您正在尝试插入_id已在db中或PK已分配给的duplicit NULL.
我试着查询表的大小,发现它是0,所以我不知道它来自哪里.
我认为你的查询被破坏了,因为你Exception说了所有内容,如果某个地方不是问题就不能抛出它.
如果您没有被分配NULL,PK并且您的表有0条记录可能问题在这里:
mDatabase.insertOrThrow("groups", null, mContentValues);
Run Code Online (Sandbox Code Playgroud)
您被分配NULL给ColumnHack作为insert()您不应该的第二个方法参数.在SQLite中,每行必须至少指定一列.它需要一个可以安全分配的列NULL.