仅当表存在时才从SQLite中删除

时间:2012-12-05 17:23:39

标签: sql database sqlite

现在我有这个陈述

DELETE FROM sqlite_sequence where name = 'table_name';

在大多数情况下工作正常,但现在我有一个案例,sqlite_sequence表没有被创建,所以我回来了

no such table: sqlite_sequence

如果表存在,我需要一个只删除的语句。我发现这个陈述告诉我表是否存在

SELECT name FROM sqlite_master WHERE type='table';

但到目前为止,我一直无法将其与删除声明成功配对

1 个答案:

答案 0 :(得分:6)

表存在检查应该包括名称,当然

SELECT count(*) FROM sqlite_master WHERE type='table' AND name='table_name';

但是你必须在单独的语句中从调用应用程序执行它,即运行上面的操作,并根据计数(自然1 = true,0 = false)作为布尔值,你可以继续运行< strong> DELETE 声明。