美好的一天。我已经检查过有关同一主题的其他问题。但我似乎无法理解为什么我的应用程序抛出了外键错误。
在我的Patient表中,我将localUuid声明为我的主键。
@Column(isPrimaryKey = true, isUnique = true, isNotNullable = true)
@Expose
@SerializedName("local_uuid")
protected String localUuid;
在我的约会表中,我宣布patientUuid为外键
@NOrm.Column(isForeignKey = true, referenceTable = "Patient", referenceColumn = "localUuid", isNotNullable = true)
@Expose
@SerializedName("patient_Uuid")
protected String patientUuid;
所以当我更新Column patientUuid
的值时会出现问题db.execSQL("UPDATE Appointment SET clinicUuid = '289f0c31-a8e3-4906-8ab2-c39e2dad368e'
WHERE localUuid ='a1584d2c-50df-46d6-86f7-6b753697116a'");
非常感谢和抱歉英语不好
答案 0 :(得分:0)
根据您的描述并向我们展示,localUuid
表中没有名为Appointment
的列。但是,有一个名为patient_Uuid
的列,引用 localUuid
表中名为Patient
的列。所以看起来你的更新应该是这样的:
db.execSQL("UPDATE Appointment SET clinicUuid = '289f0c31-a8e3-4906-8ab2-c39e2dad368e'
WHERE patient_Uuid ='a1584d2c-50df-46d6-86f7-6b753697116a'");
我不确定为什么会出现外键不匹配错误,但如果您的原始查询没有指定任何外键,可能会导致该特定错误。