ksql_lastid
—
get the last insertion row identifier
library “ksql”
#include
<sys/types.h>
#include
<stdint.h>
#include
<ksql.h>
enum ksqlc
ksql_lastid
(
struct
ksql *sql,
int64_t *id);
The
ksql_lastid
function fills in
id with the row identifier of the last
insertion. If
id is
NULL
, then this does nothing, except that
the return value still indicates whether the database is open. If no row was
successfully inserted since the database
sql
was opened, *
id is set to 0.
The
ksql_lastid
function returns
KSQL_NOTOPEN
if the database is not open or
KSQL_OK
otherwise.
The following assumes an open database
sql. It
inserts a row and checks its row identifier. For brevity, it performs no error
checking.
int64_t id;
struct ksqlstmt *stmt;
ksql_stmt_alloc(sql, &stmt,
"INSERT INTO test (foo) VALUES (?)", 0);
ksql_bind_int(stmt, 0, 42);
ksql_stmt_step(stmt);
ksql_lastid(sql, &id);
printf("The last rowid = %" PRId64 "\n", id);
sqlite3_last_insert_rowid(3)