当我删除一行时,Iphone上的Sqlite是否重新排序数据库行?

时间:2010-09-10 16:35:08

标签: iphone sqlite

我对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会重组索引吗?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

不,它没有。 (你可能会在大约5分钟内通过自己尝试来解决这个问题。:))

答案 2 :(得分:1)

没有。删除行后,没有数据库会重写ID字段。如果您想为歌曲编号,您需要自己编写代码。

答案 3 :(得分:1)

看起来像

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