如何在Qt中检测锁定的sql表?
我有一个Qt应用程序,它在数据库查询期间冻结,因为在夜间备份期间,后台运行着一个SQL转储。MySQL数据库是一个innoDB,由于性能问题无法更改为MyISAM db连接的伪代码如下,后跟锁定函数query.exec: 我想在执行插入之前检测一下表是否被锁定。但是_db.isValid和_db.isOpen返回true,无论如何我应该在表本身上检查,而不是db,我认为 感谢您的任何提示。可能的副本如何在Qt中检测锁定的sql表?,qt,locking,innodb,Qt,Locking,Innodb,我有一个Qt应用程序,它在数据库查询期间冻结,因为在夜间备份期间,后台运行着一个SQL转储。MySQL数据库是一个innoDB,由于性能问题无法更改为MyISAM db连接的伪代码如下,后跟锁定函数query.exec: 我想在执行插入之前检测一下表是否被锁定。但是_db.isValid和_db.isOpen返回true,无论如何我应该在表本身上检查,而不是db,我认为 感谢您的任何提示。可能的副本 QSqlDatabase _db = QSqlDatabase::addDatabase(QT_
QSqlDatabase _db = QSqlDatabase::addDatabase(QT_DB_TYPE, _con);
_db.setConnectOptions("MYSQL_OPT_RECONNECT=1;");
_db.setHostName("127.0.0.1");
_db.setDatabaseName("qtapp_db");
_db.setUserName("qtuser");
_db.setPassword("xxx");
_db.setPort("90000");
bool ok = _db.open();
qDebug() << "DBG: ############# db status: isopen()"<< _db.isOpen() << ", is valid; " << _db.isValid();
QSqlQuery query(_db);
query.prepare("INSERT huge_table {...}");
query.exec()