【问题标题】:Does Sqlite on the Iphone reorder database rows when I delete a row?当我删除一行时,Iphone 上的 Sqlite 是否会重新排序数据库行?
【发布时间】:2023-03-07 17:57:02
【问题描述】:

我对 iphone 编程很陌生。我想和你一起了解一些信息。这是我的数据库的结构:

ID_song : auto-int (primary key)
txt_song : text

当我们确实从表视图中删除一些数据时,当数据从 SQLite 数据库中删除时,假设我的数据库中只有 3 首歌曲

id_song:1 txt_song:Song_A
id_song:2 txt_song:Song_B <------ (To be deleted)
id_song:3 txt_song:Song_C

删除行后,表中的数据是否如下:

id_song:1 txt_song:Song_A
id_song:3 txt_song:Song_C

或

id_song:1 txt_song:Song_A
id_song:2 txt_song:Song_C

我的意思是,sqlite 会重新组织索引吗?

【问题讨论】:

    标签: iphone sqlite


    【解决方案1】:

    为什么要这样做? 首先,这可能会对性能造成巨大影响,并且存在违反数据完整性的真正风险。 更改主键意味着所有相关的外键也必须更改。

    【讨论】:

      【解决方案2】:

      不,它没有。 (你自己尝试一下,大概 5 分钟就知道了。:))

      【讨论】:

        【解决方案3】:

        没有。没有数据库会在删除一行后重写 ID 字段。如果您希望为歌曲编号,则需要自己在代码中执行此操作。

        【讨论】:

          【解决方案4】:

          看起来像

          id_song:1 txt_song:Song_A
          id_song:3 txt_song:Song_C
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-24
            • 2021-05-16
            • 1970-01-01
            • 2012-11-21
            • 2012-01-01
            • 2015-02-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多