如何在使用Python在SQLite中插入行后检索插入的id?我有这样的表:
id INT AUTOINCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
Run Code Online (Sandbox Code Playgroud)
我插入一个新行,例如数据username="test"和password="test".如何以事务安全的方式检索生成的id?这适用于网站解决方案,其中两个人可能同时插入数据.我知道我可以得到最后一行,但我不认为这是交易安全的.有人可以给我一些建议吗?
SQLite中是否有可用的内置函数来获取最后插入的行id.例如: - 在mysql中我们有LAST_INSERT_ID()这种功能.对于sqllite,任何可用于执行相同过程的函数.
请帮我.
谢谢
可能重复:
插入后获取生成的ID
我想使用此代码在我的Android应用程序中获取最后插入的行ID:
String query = "SELECT * from SQLITE_SEQUENCE";
int createdUserId = Integer.parseInt(dbHelper.executeSQLQuery(query).toString());
Run Code Online (Sandbox Code Playgroud)
但问题是它抛出了一个无法转换dbHelper.executeSQLQuery(query).toString()为整数的异常.我不是很擅长sqlite,但我认为这应该返回插入的最后一行id ...肯定会是int(至少我认为这样).所以,如果这不是正确的方法,有人可以指导我如何在Android应用程序中获取最后一行ID.
谢谢!!!
我在SQLite中有一个表:
CREATE TABLE "EventType"
(
[EventTypeID] INTEGER PRIMARY KEY,
[EventTypeName] VARCHAR(50) NOT NULL UNIQUE
);
Run Code Online (Sandbox Code Playgroud)
由于EventTypeID是一个整数和一个主键,它会自动使它成为一个自动递增列,并且工作正常.
我想在表中插入一行并从VB6获取新增加的值.
Dim oRs as Recordset
dim oCmd as new Command
oCmd.ActiveConnection = GetConnection()
oCmd.Source = "insert into EventType (EventTypeName) values ('blah')"
oCmd.Execute
Run Code Online (Sandbox Code Playgroud)
有没有自动方法来检索新创建的EventTypeID而不必发出另一个查询(从EventType中选择max(EventTypeID)))?
我似乎记得很久以前的VB6,有一种方法可以做到这一点.
我有下属实体
[Table(Name = "Users")]
public sealed class UserDB
{
private Int64 _id = -1;
private string _username = string.Empty;
public UserDB() { }
public UserDB(RepositoryInfo repoInfo)
{
UserName = repoInfo.Account;
}
[Column(Name = "ID", Storage = "_id", IsDbGenerated = true, IsPrimaryKey = true, UpdateCheck = UpdateCheck.Never)]
public Int64 ID { get { return _id; } set { _id = value; } }
[Column(Name = "UserName", DbType="nvarchar(50)", Storage = "_username")]
public string UserName { get { return _username; } set { …Run Code Online (Sandbox Code Playgroud) 假设我在 sqlite 数据库中创建了 5 个条目。
_id | Name
1 Tom
2 Oskar
3 Matt
4 Mike
5 Ed
Run Code Online (Sandbox Code Playgroud)
如果我删除数字4和5,我就只有1-3了。然后我执行 max _id 查询,然后得到数字 3。但是,我当然想要下一个自动递增的 _id。在这个例子中,如何得到数字“6”?