您可以使用事务来执行同时插入两张表的数据。事务可以确保在一组操作中要么全部成功,要么全部失败。

以下是一个示例代码,演示了如何使用事务同时插入两张表的数据:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("your_database_name");
db.setUserName("your_username");
db.setPassword("your_password");
bool ok = db.open();

if (ok) {
    QSqlQuery query(db);
    query.exec("START TRANSACTION"); // 开始事务

    // 插入第一张表的数据
    query.prepare("INSERT INTO table1 (column1, column2) VALUES (:value1, :value2)");
    query.bindValue(":value1", "data1");
    query.bindValue(":value2", "data2");
    query.exec();

    // 插入第二张表的数据
    query.prepare("INSERT INTO table2 (column1, column2) VALUES (:value1, :value2)");
    query.bindValue(":value1", "data3");
    query.bindValue(":value2", "data4");
    query.exec();

    if (query.lastError().isValid()) {
        qDebug() << "Error: " << query.lastError().text();
        query.exec("ROLLBACK"); // 出现错误时回滚事务
    } else {
        query.exec("COMMIT"); // 提交事务
    }

    db.close();
} else {
    qDebug() << "Database connection error: " << db.lastError().text();
}

在上述示例中,首先创建一个QSqlDatabase对象并打开数据库连接。然后,使用QSqlQuery对象执行事务的开始和结束语句。在事务中,使用prepare()方法准备插入语句,并使用bindValue()方法绑定参数。最后,根据插入结果决定是提交事务还是回滚事务。

请根据您的实际情况修改表名、列名和要插入的数据

QSqlDatabase sql语句同时插入两张表的数据

原文地址: https://www.cveoy.top/t/topic/hNQN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录