数据库导入后核心数据唯一约束失败

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 值更改为您需要的值

【讨论】:

以上是关于数据库导入后核心数据唯一约束失败的主要内容,如果未能解决你的问题,请参考以下文章

核心数据(添加唯一约束后):注释:修复丢失的删除传播以实现对多关系

违反唯一约束会导致整个 pq.CopyIn postgresql 导入失败

oracle数据导入时,提示违反唯一约束性?

由于房间中的唯一约束,数据库迁移失败

唯一约束失败:sqlite 数据库:android

重复键违反唯一约束