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

时间:2017-01-08 00:05:34

标签: c++ sql sqlite

我在我的c ++程序中使用sqlite3并尝试在其中运行SQL字符串 sqlite3_get_table函数。

这是我的sql字符串。

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

我一直收到错误"没有这样的专栏" test_table""

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

1 个答案:

答案 0 :(得分:3)

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