【问题标题】:How to get the ID from a newly inserted row with QSqlQuery and SQLite?如何使用 QSqlQuery 和 SQLite 从新插入的行中获取 ID?
【发布时间】:2019-11-02 11:34:29
【问题描述】:

我有一个表T,它有一个字段id,它是一个INTEGER PRIMARY KEY AUTOINCREMENT,还有一个INTEGER 字段f。使用 Qt5,我插入一行代码如下:

QSqlQuery insert;
insert.exec("INSERT INTO T (f) VALUES (0)");

但是如何获取新插入字段的id

【问题讨论】:

    标签: c++ sqlite qt qt5 qsqlquery


    【解决方案1】:

    你必须使用QSqlQuerylastInsertId()方法:

    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();
    }
    

    【讨论】:

    • 这个last_id 变量在哪里定义?
    • @Ramiro 我忘了擦掉,我在做几个插入的功能测试,在这种情况下没有必要
    猜你喜欢
    • 2012-11-27
    • 2018-08-07
    • 2020-10-31
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    相关资源
    最近更新 更多