我正在尝试使用SQLite 添加一列(如果该列尚不存在)。在看了无数的堆栈溢出问题之后,我相信在SQL语句中执行此操作的唯一方法是使用pragma_table_info
(但是,仅适用于sqlite v3.16及更高版本)。
因此,如果ALTER
查询为SELECT COUNT
,我将尝试运行> 0
查询。
这是我的尝试,所有尝试都引发语法错误。
尝试#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';
尝试#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';
尝试#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
尝试#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
尝试#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
有人知道我在做什么错吗?
请不要给我任何Java或C ++代码,我只是在寻找纯sqlite 解决方案。