c++ - SQL 字符串错误?没有这样的专栏

标签 c++ sql sqlite

我在我的 C++ 程序中使用了 sqlite3,并试图在 sqlite3_get_table 函数。

这是我的 sql 字符串。

SELECT name FROM sqlite_master WHERE type='table' AND name=test_table;

我不断收到错误消息“没有这样的列“test_table””。

我要做的就是确认我的数据库中是否存在一个表。就这样。 关于我的字符串有什么问题的任何线索。

最佳答案

在 SQLite 中,双引号 ('"') 是标识符转义字符,因此假设这是您的 SQL(原始 SQL,与 C++ 无关):

SELECT
    name
FROM
    sqlite_master
WHERE
    type = 'table'
    AND
    name = "test_table;"

相当于:

...
name = test_table

...这显然不是您想要的。

您应该在 SQL 中使用单引号字符串,并且语句终止分号应该放在最后:

SELECT
    name
FROM
    sqlite_master
WHERE
    type = 'table'
    AND
    name = 'test_table';

关于c++ - SQL 字符串错误?没有这样的专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41527996/

相关文章:

database - 轻量级客户端/服务器数据库?

java - 以另一种形式使用 Java DB 连接

c++ - gcc5.2 abi 更改 -> 兼容性有保证吗?

c++ - noexcept 函数仍然可以调用在 C++17 中抛出的函数吗?

c++ - 无法创建顶点缓冲区

c++ - opengl - 三角形邻接三角形带

python - sqlalchemy.text 对象的别名

MYSQL 错误号 121。支持事务、行级锁定和外键

java - 如何在 Java 中使用带问号的 strftime 函数

mysql - 如何找到最常见和最不常见的数字