如何在android sqlite中获取有关该列的信息导致外键约束?

我想知道是否有可能获得有关SQLiteConstraintException: foreign key constraint信息SQLiteConstraintException: foreign key constraintexception。

我需要知道哪个导致违反外键约束

有没有办法从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/并尝试在那里复制错误,它应该为您提供更多信息。