7

现在我有这个声明

DELETE FROM sqlite_sequence where name = 'table_name';

在大多数情况下都可以正常工作,但是现在我遇到了一个sqlite_sequence没有创建表的情况,所以我回来了

no such table: sqlite_sequence

我需要一个仅在表存在时才执行删除的语句。我发现这个语句告诉我表是否存在

SELECT name FROM sqlite_master WHERE type='table';

但到目前为止,我一直无法成功地将它与删除语句配对

4

1 回答 1

6

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

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

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

于 2012-12-05T17:52:32.387 回答