这是我的表,
sqlStmt = [ [ NSString stringWithFormat:@"Create Table %@ (recordNo INTEGER PRIMARY KEY AUTOINCREMENT, noOfPlayer INTEGER, smallBlindAmt INTEGER, bigBlindAmt INTEGER , startingChips INTEGER, roundTimer INTEGER) " , SETTINGS_TABLE ] StringUsingEncoding:NSUTF8StringEncoding ] ;
插入查询,
sqlStmt = [ [ NSString stringWithFormat: @"insert into %@ values (NULL,%d, %d ,%d ,%d ,%d )" , strTableName ,noOfPlayers, SmallAmt, BigAmt, StartingChips, RoundTime ] UTF8String ] ;
获取最后一条记录的记录ID,
lastRecordNo = sqlite3_last_insert_rowid(dbObj);
lastRecordNo始终为0,我无法插入其他值,因为它提供错误主键必须是唯一的。
我无法解决与之相关的问题?
如何获取最后一个记录ID,即主键和自动增量。?
我的插入查询有问题吗?
任何人都可以通过示例创建,插入和选择查询来解释我,其中primary是自动增量吗?
答案 0 :(得分:2)
不要在insert语句中显式设置主键,让系统使用自动增量分配它。
将insert语句更改为:
insert into %@ (noOfPlayer, smallBlindAmt, bigBlindAmt, startingChips, roundTimer) values (%d, %d ,%d ,%d ,%d)
答案 1 :(得分:1)
检查你的表格以获取记录。你可以使用sqlite3_mprintf。 here了解更多详情
答案 2 :(得分:0)
我真的不知道为什么它不起作用,你可能正在重新连接或什么的。 我还建议不要查找最后一行ID,因为另一个进程可能会并行增加它。