我有一个表T
,其中有一个字段id
(一个INTEGER PRIMARY KEY AUTOINCREMENT
和一个INTEGER
字段f
。使用Qt5,我将使用以下代码插入一行:
QSqlQuery insert;
insert.exec("INSERT INTO T (f) VALUES (0)");
但是如何获得新插入字段的id
?
答案 0 :(得分:1)
您必须使用lastInsertId()
的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();
}