Android、SQLite:我想要在 myTable 中的其他行之间插入行在android中使用SQLite。为此,我尝试增加从第 3 行开始的所有行的 id。这样我就可以在位置 3 处插入新行。
myTable 的主键是列 id。表中没有其他约束。
我尝试过使用中提到的查询https://stackoverflow.com/a/9177264/6671004 https://stackoverflow.com/a/9177264/6671004。这个查询does工作于mySQL 但不在 Android 中 (SQLite)
这是代码行:
database.execSQL("UPDATE myTable SET id = (id + 1) where id > 2 ORDER BY id desc");
这是我在 Android Studio 上遇到的错误(编译时):https://i.stack.imgur.com/1k4XD.jpg https://i.stack.imgur.com/1k4XD.jpg
如果我从查询中删除“ORDER BY id DESC”,这是我得到的异常:
java.lang.RuntimeException:无法启动活动ComponentInfo {...}:android.database.sqlite.SQLiteConstraintException:唯一约束失败:myTable.id(代码1555)
这是执行此操作的正确方法吗?或者,还有更好的方法?
正如许多人指出的那样,这绝对不是正确的方法。
但我找到了解决方法,以防其他人正在寻找类似的实现。
这里是 :
UPDATE myTable SET id = - (id + 1) WHERE id > 1;
UPDATE myTable SET id = - id WHERE id < 0;
这是我发现的一个黑客here https://stackoverflow.com/a/19381510/6671004.
Again, 这不是正确的方法。但只是发布一个working我找到的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)