现在我有这句话
DELETE FROM sqlite_sequence where name = 'table_name';
在大多数情况下都可以正常工作,但是现在我遇到了未创建
sqlite_sequence
表的情况,所以我回来了no such table: sqlite_sequence
我需要一条仅在表存在的情况下才删除的语句。我发现此声明可以告诉我该表是否存在
SELECT name FROM sqlite_master WHERE type='table';
但是到目前为止,我还无法成功将其与删除状态配对
最佳答案
表存在性检查当然应该包括名称
SELECT count(*) FROM sqlite_master WHERE type='table' AND name='table_name';
但是您必须在单独的语句中从调用应用程序执行此操作,即运行上面的命令,并基于作为 bool 值的计数(自然为1 = true,0 = false),可以继续运行 DELETE 语句。