我已经设法删除了使用 Core Data 存储的所有实体(在 this answer 之后)。
问题是,我注意到主键仍在向上计数。有没有办法(无需手动编写 SQL 查询)重置实体的 Z_MAX 值?下面的屏幕截图阐明了我的意思。
值本身不是问题,但我只是担心在未来的某个时候可能会达到最大整数,我不希望这种情况发生。我的应用程序与 Web 服务同步数据并使用核心数据缓存它,因此主键可能一次增加数百/数千。删除整个 Sqlite 数据库不是一种选择,因为我需要为其他实体保留一些信息。
我看过“重置”方法,但肯定会重置整个 Sqlite 数据库吗?如何仅为这组实体重置主键?与我要重置的主键的其他实体没有任何关系。
最佳答案
I'm just concerned that at some point in the future the maximum integer may be reached and I don't want this to happen.
真的吗?您的主键是什么类型?因为如果它不是 Int16 以外的任何东西,你真的不需要关心它。一个带符号的 32 位整数为您提供 2,147,483,647 个值。一个 64 位有符号整数为您提供 9,223,372,036,854,775,807 个值。
如果您认为您将用完所有这些,那么您可能需要担心比整数溢出更重要的事情。
更重要的是,如果您使用的是 Core Data,则不需要关心或真正使用主键。 Core Data 不是数据库——在使用 Core Data 时,您应该使用关系而不是真正关心主键。 Core Data 并不真正需要它们。
关于iphone - 如何重置核心数据中的主键计数/最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663252/