数据库导入后核心数据唯一约束失败
Posted
技术标签:
【中文标题】数据库导入后核心数据唯一约束失败【英文标题】:Core Data Unique Constraint Failed after DB Import 【发布时间】:2015-08-05 21:13:52 【问题描述】:我正在将数据从旧的 .sqlite 数据库复制到一个新的 .sqlite 数据库中,我计划从现在开始在我的应用程序中使用该数据库。旧数据库包含一个class Thing : NSManagedObject
对象表,上面有许多属性。
为了复制数据,我使用 FMDB 查询旧数据库中的所有行,然后执行以下操作:
Thing *thing = [NSEntityDescription insertNewObjectForEntityForName:@"Thing" inManagedObjectContext:context]
然后使用旧数据库中的行在thing
上设置每个属性。并以[context save:&error]
结尾。
复制成功,数据显示在应用程序中。但是,当我尝试添加新数据时出现错误:UNIQUE constraint failed: ZTHINGS.Z_PK
。如果我只是创建新数据库,不复制任何数据,那么新数据就可以写好了。
所以,我将旧数据复制到新数据库时出现问题,导致主键不正常。有谁知道这可能是什么原因?
【问题讨论】:
您的问题解决了吗?我面临同样的错误。 【参考方案1】:我遇到同样的情况,按照以下步骤解决:
1 使用 SQLite 数据库浏览器
2 转到系统创建的 Z_PRIMARYKEY 表
3 将 Z_MAX 值更改为您需要的值
【讨论】:
以上是关于数据库导入后核心数据唯一约束失败的主要内容,如果未能解决你的问题,请参考以下文章
核心数据(添加唯一约束后):注释:修复丢失的删除传播以实现对多关系