gpt4 book ai didi

ios - 删除行后如何重置 Sqlite id 值?

转载 作者:行者123 更新时间:2023-11-29 00:14:05 25 4
gpt4 key购买 nike

我已经创建了如下的sqlite数据库

        NSString * sqlStmt =@"CREATE TABLE IF NOT EXISTS SONGS (ID INTEGER PRIMARY KEY AUTOINCREMENT, MOVIENAME TEXT, SONGNAME TEXT)";

删除数据库中的第 7 行后,id 值为 1,2,3,4,5,6,8,9... 通过使用以下代码,其中 idNumber =7。

 const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &_SQliteDB) == SQLITE_OK)
{

NSString *sql = [NSString stringWithFormat:@"delete from SONGS where ID=%d",idNumber];
const char *del_stmt = [sql UTF8String];
char *error ;
if (sqlite3_exec(_SQliteDB,del_stmt, NULL, NULL, &error) == SQLITE_OK)
{
NSLog(@"sucessfully delete");

} else
{
NSLog(@"unable to delete");
}
sqlite3_close(_SQliteDB);
}

else
{
NSLog(@"unable to open");
}

我需要按照 1、2、3、4、5、6、7、8 的顺序重新排列该顺序吗? 任何帮助将不胜感激。

最佳答案

您不应该重新排序 ID,因为其他表格可能引用了此 ID。因为如果你能做到这一点,那么下一个问题就会出现在你面前。

例如:- 您有第 1、2、3 行,删除第 2 行,然后有 1、3。您可以任意排序。现在的问题是当您要添加以 4 而不是 3 开头的新项目时。

对于您的情况,我建议使用 Row_Number如果是出于显示原因。

数据库中存在间隙没有问题。

关于ios - 删除行后如何重置 Sqlite id 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45707507/

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