gpt4 book ai didi

sqlite - iOS App中的SQLite DB和表ID

转载 作者:行者123 更新时间:2023-12-03 14:21:49 25 4
gpt4 key购买 nike

通过遵循一些教程,我设法在iOS App中创建了SQLite数据库。我最初期望依靠主键。当时我不知道无法在SQLite中删除或重新创建主键,现在我的应用程序很大,为了使其正常工作,我需要主键保持“有序”。

我正在开发一个任务管理器作为练习,并将数据直接从DB加载到TableView中,并且当我删除一行时,我需要修复主键索引。

当前,这是我删除行时发生的情况:

ID TXT STAT
1 some_text 1
2 some_text 1
4 some_text 1


如您所见,我删除行后的主键 ID跳了一个数字,如何再次将其设置为1 2 3等?

我真的不在乎您提供的解决方案是否浪费了很多资源,这只是一个练习,我需要它:D(而且我不会再犯此错误了!)

谢谢。

最佳答案

首先,将所有ID增加一个大于任何已使用ID的偏移量:

UPDATE mytab SET ID = ID + 1000


然后将ID设置为最多一个的记录数:

UPDATE mytab SET ID = (SELECT COUNT(*) FROM mytab t2 WHERE t2.ID <= mytab.ID)


(第一个 UPDATE的原因是为了避免发生冲突,其中一个记录的新ID与另一个记录的旧ID相同。)

关于sqlite - iOS App中的SQLite DB和表ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com