在android sqlite和sql server之间同步多主机数据库期间,我需要在android上解决失败的唯一约束。我已经在android中创建了sqlite数据库,其中包含所有主键,外键和唯一约束。
这是一个样本表的示例。
db.execSQL("CREATE TABLE " + Tables.ARTIST + " ("
+ BaseColumns._ID + " INTEGER,"
+ ArtistColumns.ID + " TEXT NULL,"
+ ArtistColumns.MODELTYPE + " TEXT NULL,"
+ ArtistColumns.NAME + " TEXT NULL,"
+ "FOREIGN KEY (" + ArtistColumns.MODELTYPE + ") " + References.MODELTYPE_ID + ","
+ "unique(" + ArtistColumns.MODELTYPE + "," + ArtistColumns.NAME + ")"
+ "PRIMARY KEY(" + ArtistColumns.ID + "))");
我正在使用contentprovider进行数据库操作。在提供程序中的insert方法中,我可以通过捕获SQLiteConstraintException来捕获失败约束的异常。但我需要知道如何才能获得失败的唯一约束的名称,以便我可以解决冲突。
答案 0 :(得分:0)
最近的SQLite版本显示错误消息中的约束名称。
在Android上,SQLite版本不太可能是最近的。 您必须手动检查可能的字段值。