【问题标题】:Can't check if a table exist in QT MYSQL无法检查 QT MYSQL 中是否存在表
【发布时间】:2021-08-12 13:30:46
【问题描述】:

我正在尝试检查 QT 框架内的 QMYSQL 架构中是否存在表。 我已经连接了 MySQL 服务器,它可以创建一个表,但不检查表是否存在。

这是检查表是否存在的代码

query.exec("CREATE TABLE " + table_name + "(ID BIGINT PRIMARY KEY)");
QStringList tables = this->qSqlDatabase.tables();
qDebug() << "Table name: " + table_name;
for(int i = 0; i < tables.length(); i++)
    qDebug() << tables[i];
qDebug() << tables.length();
if(tables.contains(table_name))

if 语句不运行,输出为:

"Table name: table0"
 0

在这种情况下table_name = "table0"。但是为什么会这样呢?

【问题讨论】:

标签: c++ mysql qt qtsql


【解决方案1】:

试试这条线:

query.exec("CREATE TABLE " + table_name + " (ID BIGINT, PRIMARY KEY (ID));");

【讨论】:

  • 但是创建一个表是可行的。但是查看有一个已经创建的表,不行。
  • 顺便说一句。我已经通过创建一个表解决了这个问题,而不关心表是否已经存在。因为 QT 处理了这个问题。不知道。
  • 您写道,此行返回 false,因此它显然不适用于您的原始代码。
  • 哦不好意思,没看懂直接。是的,它返回 true,但是如果我检查是否有可用的表,那么直到将返回 0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2010-12-21
  • 1970-01-01
  • 2016-12-05
相关资源
最近更新 更多