如何使用 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();
}