QT开发中文网

从旧表迁移数据的完整例子

以下是一个简单的从旧表迁移数据到新表的完整例子,使用MySQL数据库和Qt的QSqlQuery类进行操作:

// 假设我们有一个旧表 old_table 和一个新表 new_table

// 创建连接并打开数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("your_database_name");
db.setUserName("your_username");
db.setPassword("your_password");

if (!db.open()) {
    qWarning() << "无法连接到数据库";
    return;
}

// 创建旧表和新表(如果不存在)
QString createOldTableQuery = "CREATE TABLE IF NOT EXISTS old_table (id INT PRIMARY KEY, name VARCHAR(50), age INT)";
QString createNewTableQuery = "CREATE TABLE IF NOT EXISTS new_table (id INT PRIMARY KEY, name VARCHAR(50), age INT)";
QSqlQuery query;
query.exec(createOldTableQuery);
query.exec(createNewTableQuery);

// 查询旧表数据
QString selectOldDataQuery = "SELECT * FROM old_table";
query.exec(selectOldDataQuery);

while (query.next()) {
    int id = query.value("id").toInt();
    QString name = query.value("name").toString();
    int age = query.value("age").toInt();

    // 将查询结果插入新表
    QString insertNewDataQuery = QString("INSERT INTO new_table (id, name, age) VALUES (%1, '%2', %3)").arg(id).arg(name).arg(age);
    if (!query.exec(insertNewDataQuery)) {
        qWarning() << "插入数据失败:" << query.lastError().text();
    }
}

// 关闭数据库连接
db.close();

请根据你的实际表结构和需求调整以上代码。确保在执行数据库迁移之前进行备份,并正确处理错误和异常情况。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=10345

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?