我有一个表T
,它有一个字段id
,这是一个INTEGER PRIMARY KEY AUTOINCREMENT
,和一个INTEGER
字段f
。使用 Qt5,我插入一行包含以下代码:
QSqlQuery insert;
insert.exec("INSERT INTO T (f) VALUES (0)");
但是如何获取新插入字段的id
呢?
你必须
使用QSqlQuery
的lastInsertId()
方法:
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();
}