我想知道在SQLite中检查列和索引是否有一个很好的IF NOT EXISTS,或者我是否需要恢复整个数据库模式并对其进行验证?
有一个名为sqlite_master的系统目录表,可用于检查索引(或其他)名称:
SELECT name FROM sqlite_master WHERE type='index' ORDER BY name;
您可以使用pragma获取索引列:
PRAGMA index_info(index-name);
这一个用于获取表的列名:
PRAGMA table_info(table-name);
是的,sqlite支持以下语法: CREATE INDEX IF NOT EXISTS ...
看这里
要检查列的存在,您可以尝试执行类似的操作SELECT col from TABLE
.如果它没有返回表中包含的错误col
.