I'm trying to add a column if the column doesn't exist already using SQLite. After looking at a ton of stack overflow questions, I believe the only way to do this in an SQL statement is to use pragma_table_info
(however this is only available for sqlite v3.16 and further).
So, I'm trying to run the ALTER
query if the SELECT COUNT
query is > 0
.
Here's my attempts, all are throwing syntax error.
Try #1
SELECT COUNT(*) AS CNTREC
CASE CNTREC
WHEN CNTREC > 0
THEN
ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END
FROM pragma_table_info('runs')
WHERE name='scheduledRun';
Try #2
SELECT COUNT(*) AS CNTREC
CASE
WHEN CNTREC > 0
THEN
ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END
FROM pragma_table_info('runs')
WHERE name='scheduledRun';
Try #3
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('runs') WHERE name='scheduledRun';
CASE CNTREC WHEN CNTREC > 0
THEN
ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END
Try #4
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('runs') WHERE name='scheduledRun'
CASE CNTREC WHEN CNTREC > 0
THEN
ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END
Try #5
SELECT COUNT(*) AS CNTREC FROM pragma_table_info('runs') WHERE name='scheduledRun'
CASE WHEN CNTREC > 0
THEN
ALTER TABLE runs ADD scheduledRun BOOLEAN NOT NULL DEFAULT 0
END
Anyone see what I'm doing wrong?
Please do not give me any Java or C++ code, I'm looking for a pure sqlite solution only.