我在SQLite3中有一个表,其中包含以下模式:
create table threads(
id integer primary key autoincrement,
submitter text,
body text,
title text,
subtime int -- Unix time
);
我正在插入这样的行:
insert into threads (title, body, subtime, submitter) values
("I like ducks", "Don't you?", 1467664977640, "tom");
我想在插入线程后获取id列。我怎样才能做到这一点?理想情况下,我可以在同一语句中插入和检索列。
答案 0 :(得分:1)
Result interface允许您访问此值而无需执行其他查询:
res, err := db.Exec("INSERT ..."), someParam)
if err != nil {
println("Exec err:", err.Error())
} else {
id, err := res.LastInsertId()
if err != nil {
println("Error:", err.Error())
} else {
println("LastInsertId:", id)
}
}
答案 1 :(得分:0)
我不知道你是否可以在一个语句中执行此操作,但在insert语句之后,您可以使用以下语句获取最后一个自动增加的id:
SELECT last_insert_rowid()
另一种方法是使用以下语句:
select seq from sqlite_sequence where name="threads"