Svetsi
Svetsi

Reputation: 305

SQL String error? No Such Column

I'm using sqlite3 in my c++ program and am trying to run an SQL string in the sqlite3_get_table function.

Here's my sql string.

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

I keep getting the error "no such column "test_table"" .

All I am trying to do is confirm the existence of a table in my database. That's all. Any clues as to what's wrong with my string.

Upvotes: 0

Views: 602

Answers (1)

Dai
Dai

Reputation: 155065

In SQLite double quotes ('"') is the identifier-escape character, so assuming this is your SQL (raw SQL, nothing to do with C++):

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

Is equivalent to:

...
name = test_table

...which obviously isn't what you want.

You should use single-quoted strings in SQL, and the statement-terminating semicolon should go at the very end:

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

Upvotes: 4

Related Questions