Sqlite检查表、字段是否存在,不存在则新增
-- 假设我们有一个名为example_db的SQLite数据库
-- 创建一个存储过程,检查表和字段是否存在,如果不存在则创建
CREATE TABLE IF NOT EXISTS sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);
-- 创建一个存储过程,用于检查表和字段是否存在,如果不存在则创建它们
CREATE TEMP TABLE IF NOT EXISTS schema_table AS SELECT * FROM sqlite_master WHERE type='table' AND name='example_table';
-- 如果example_table表不存在,则创建它
INSERT OR IGNORE INTO sqlite_master (type, name, tbl_name, rootpage, sql)
SELECT 'table', 'example_table', 'example_table', 0,
'CREATE TABLE example_table (id INTEGER PRIMARY KEY, content TEXT);'
WHERE NOT EXISTS (SELECT 1 FROM schema_table WHERE name='example_table');
-- 如果example_field字段不存在于example_table表中,则添加该字段
INSERT OR IGNORE INTO sqlite_master (type, name, tbl_name, rootpage, sql)
SELECT 'table', 'example_table', 'example_table', 0,
'ALTER TABLE example_table ADD COLUMN example_field TEXT;'
WHERE NOT EXISTS (SELECT 1 FROM pragma_table_info('example_table') WHERE name='example_field');
这个例子展示了如何在SQLite中检查表和字段是否存在,如果不存在,如何创建它们。这是一个非常基础的例子,实际使用时需要根据具体情况调整。
评论已关闭