我在我的c ++程序中使用sqlite3并尝试在其中运行SQL字符串 sqlite3_get_table函数。
这是我的sql字符串。
SELECT name FROM sqlite_master WHERE type='table' AND name=test_table;
我一直收到错误"没有这样的专栏" test_table""
我要做的就是确认数据库中是否存在表。这就是全部。 关于我的字符串有什么问题的任何线索。
答案 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';