我想知道是否有可能获得有关SQLiteConstraintException: foreign key constraint
信息SQLiteConstraintException: foreign key constraint
exception。
有没有办法从exception中获取这些信息?
如果我能得到该约束的名称也可能是好的。
我想你可以在下面的问题中find答案:
可以从Android SQLiteConstraintException获取特定的错误详细信息?
看看antoino发布的解决方案2。
没有直接的方法来查找违反SQLiteConstraintException中的外键约束的列名:外键约束exception。
但是你可以find引发SQLiteConstraintException的操作(删除,插入,创建等)名称:外键约束exception。在下面的日志中
04-27 11:15:27.152: E/AndroidRuntime(22031): FATAL EXCEPTION: main 04-27 11:15:27.152: E/AndroidRuntime(22031): android.database.sqlite.SQLiteConstraintException: foreign key constraint failed (code 19) 04-27 11:15:27.152: E/AndroidRuntime(22031): at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method) 04-27 11:15:27.152: E/AndroidRuntime(22031): at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:727) 04-27 11:15:27.152: E/AndroidRuntime(22031): at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754) 04-27 11:15:27.152: E/AndroidRuntime(22031): at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64) 04-27 11:15:27.152: E/AndroidRuntime(22031): at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1494) 04-27 11:15:27.152: E/AndroidRuntime(22031): at it.jackpot21.personalmoney.DbAdapter.SQLdelete(DbAdapter.java:89) 04-27 11:15:27.152: E/AndroidRuntime(22031): at it.jackpot21.personalmoney.PersoneActivity$5.onClick(PersoneActivity.java:215)
在上面的日志中
04-27 11:15:27.152:E / AndroidRuntime(22031):在android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1494)
这告诉我们删除操作引发exception。 然后,您可以find代码中的哪一行引发此exception并手动检查您的查询和列。
较新的SQLite版本将表名添加到错误消息中,但在这两种情况下都不会获得列名。
您可以将您的sql复制到sqlite浏览器, http: //sqlitebrowser.org/并尝试在那里复制错误,它应该为您提供更多信息。