SQL 字符串错误?没有这样的列

SQL String error? No Such Column

本文关键字:字符串 错误 SQL      更新时间:2023-10-16

我在我的 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';