我创建了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?任何帮助都将不胜感激。
发布于 2017-08-16 07:41:04
发布于 2017-08-16 07:47:00
您不应该重新排序ID,因为其他表可能有此ID的引用,因为如果您能够这样做,那么下一个问题就会出现在您面前。
例如,:-您有第1行、第2行、第3行,然后删除2,然后就有1、3行。现在的问题是,当您要添加新项时,它从4而不是3开始。
在您的情况下,如果出于显示原因,我建议使用数。
数据库中存在空白是没有问题的。
发布于 2019-09-10 00:54:22
必须将数据库中的所有数据定义为新的数组或必须删除表的list.After,并将所有数据从数组或列表重写到数据库。
您可以寻找android工作室解决方案;
https://stackoverflow.com/questions/45707507
复制相似问题