回答
我检查了来源。 insert
方法使用sqlite3_last_insert_rowid
函数返回一个id。 根据文档:https://www.sqlite.org/c3ref/last_insert_rowid.html 行标识是隐藏列或类型为INTEGER PRIMARY KEY
的列(如果已声明)。
所以这是默认_ID
柱通常
我有相当多的与此有关MySQL的问题,LAST_INSERT_ID是不可靠的方式来获得ID,如果有用户锤击数据库时,ID返回可能不是您运行的查询插入的ID,其他几个用户可能会影响此ID的返回。我们的服务器平均每分钟有7000个用户在捶打,而且它总是绊倒。
我们的解决方案是使用您插入的查询中的数据,然后使用该数据搜索该结果。无论如何,你正在做一个寻找最后一个ID的请求。所以你不妨做一个SELECT ID FROM表,其中field = var和field = var来获得id。它在查询中性能稍差,但返回的结果更加可靠。
中有详细记录这要求每行的列值是唯一的(或者大多数是唯一的),否则会有返回多个ID的风险。 – 2016-06-20 01:18:00
如果使用ContentValues:
DBHelper db =new DBHelper();// your dbHelper
ContentValues values = new ContentValues();
values.put("firstName","Ahmad");
values.put("lastName","Aghazadeh");
long insertedId= db.getSQLiteDatabase().insert("user", "", values) ;
如果查询EXEC使用select last_insert_rowid()
String sql = "INSERT INTO [user](firstName,lastName) VALUES (\"Ahmad\",\"Aghazadeh\"); select last_insert_rowid()";
DBHelper itemType =new DBHelper();// your dbHelper
c = db.rawQuery(sql, null);
if (c.moveToFirst())
result = c.getLong(0);
人们可以使用last_insert_rowid()
简单地得到最后插入的行_id。示例代码如下。
/**
* Return Last inserted row id(auto incremented row) (_id)
* @return
*/
public int getLastAddedRowId() {
String queryLastRowInserted = "select last_insert_rowid()";
final Cursor cursor = database.rawQuery(queryLastRowInserted, null);
int _idLastInsertedRow = 0;
if (cursor != null) {
try {
if (cursor.moveToFirst()) {
_idLastInsertedRow = cursor.getInt(0);
}
} finally {
cursor.close();
}
}
return _idLastInsertedRow;
}
- 1. 获取插入后产生的ID
- 2. Slick/Oracle PLAIN SQL在插入后获取自动生成的ID
- 3. 插入后获取自动生成的ID
- 4. 获取后插入ID春
- 5. 插入后获取ID
- 6. Mysql插入获取ID然后插入返回的Id
- 7. 获取最后生成的id asp.net
- 8. 获取最后插入的行的ID
- 9. 获取最后插入的值的ID
- 10. 如何获取插入表的行的自动生成的id?
- 11. 获取最后插入的ID
- 12. Node + Mongoose:获取最后插入的ID?
- 13. 如何获取最后插入的ID?
- 14. 获取最后一个插入的ID
- 15. 插入重复更新获取“新”生成的ID
- 16. 插入行并生成ID
- 17. 获取mysql最后插入ID,插入记录后使用PDO
- 18. 插入请求后获取id值
- 19. 插入后ASP.NET库获取ID
- 20. ef4 poco,插入后如何获取id?
- 21. 获取最后插入ID ZF2
- 22. 插入后获取ID在SQL Server中
- 23. 获取最后一个插入ID
- 24. 获取插入的ID如果插入发生REPLACE INTO
- 25. 获取被插入的记录的ID插入后
- 26. TSQL获取插入的ID
- 27. 获取插入的ID MYSQL
- 28. SQL插入Spring JDBC后获取生成的密钥
- 29. Postgresql,使用JDBC插入后获取生成的序列
- 30. 插入,获取ID并同时插入
我在规格上阅读。 “返回:新插入的行的行ID,如果发生错误,则返回-1”rowId与我生成的字段“id主键autoincrement”相同? – 2011-03-23 18:28:42
是的,它是一样的。 – GrAnd 2011-03-23 18:33:25
谢谢!经过测试和批准。 – 2011-03-23 18:35:38