【问题标题】:Inserting multiple rows with same foreign key results in "constraint failed"插入具有相同外键的多行会导致“约束失败”
【发布时间】:2013-02-07 13:08:55
【问题描述】:

我有一个班级Contact 和一个班级PhoneNumber。在PhoneNumber 类里面,我有这个属性:

@DatabaseField(foreign = true, columnName = "contact_id")
private Contact mContact;

Contact 类中的 contact_id 是这样的:

@DatabaseField(id = true, columnName = "contact_id", allowGeneratedIdInsert = false)
private Integer m_id;

当我尝试将具有相同 contact_id 值的新 PhoneNumber 插入数据库时​​,它总是返回 constraint_failed 错误。

应该发生吗?我不能用相同的外键插入多行吗?我该如何解决?

【问题讨论】:

  • 你能把你的一些插入代码显示为一个小块吗?您使用的是什么版本的 ORMLite?

标签: android foreign-keys constraints ormlite


【解决方案1】:

这应该发生。您实现了一对一的关系,但您需要一对多。在您的班级中,您有一个电话号码联系人,但 db 为一个电话号码存储了多个联系人。这是没有意义的。因此,您应该使用列表联系人,而不是联系人联系人。然后插入多个具有相同 id 的联系人就可以了。

【讨论】:

    猜你喜欢
    • 2017-11-08
    • 1970-01-01
    • 2015-04-24
    • 2016-06-04
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多