如何使用 QSqlQuery 和 SQLite 从新插入的行中获取 ID?
How to get the ID from a newly inserted row with QSqlQuery and SQLite?
我有一个 table T
,它有一个字段 id
,它是一个 INTEGER PRIMARY KEY AUTOINCREMENT
,还有一个 INTEGER
字段 f
.使用 Qt5,我插入一行代码如下:
QSqlQuery insert;
insert.exec("INSERT INTO T (f) VALUES (0)");
但是如何获取新插入字段的id
?
您必须使用 lastInsertId()
method of QSqlQuery
:
QSqlDatabase db = QSqlDatabase::database();
if(db.driver()->hasFeature(QSqlDriver::LastInsertId)){
QSqlQuery insert;
bool res = insert.exec("INSERT INTO T (f) VALUES (0)");
Q_ASSERT(res);
QVariant id = insert.lastInsertId();
Q_ASSERT(id.isValid() && !id.isNull());
qDebug() << id.toInt();
}
我有一个 table T
,它有一个字段 id
,它是一个 INTEGER PRIMARY KEY AUTOINCREMENT
,还有一个 INTEGER
字段 f
.使用 Qt5,我插入一行代码如下:
QSqlQuery insert;
insert.exec("INSERT INTO T (f) VALUES (0)");
但是如何获取新插入字段的id
?
您必须使用 lastInsertId()
method of QSqlQuery
:
QSqlDatabase db = QSqlDatabase::database();
if(db.driver()->hasFeature(QSqlDriver::LastInsertId)){
QSqlQuery insert;
bool res = insert.exec("INSERT INTO T (f) VALUES (0)");
Q_ASSERT(res);
QVariant id = insert.lastInsertId();
Q_ASSERT(id.isValid() && !id.isNull());
qDebug() << id.toInt();
}