2010-02-19 61 views
5

我想刪除所有沒有行的表。如何刪除SQLite中的所有空表?

如何刪除SQLite中的所有空表?

編輯
我需要這樣做手機(無外殼存在)。在Windows Mobile手機上。

+1

最有可能在shelling腳本或perl中完成。 – Yada 2010-02-19 22:45:10

+0

我需要在手機上進行此操作(沒有外殼)。在Windows Mobile手機上。 – Pentium10 2010-02-19 22:48:09

+0

我們需要知道什麼語言可用(因爲我不知道,無論如何)。 – 2010-02-19 22:52:00

回答

7

可以刪除表,不管它們在執行命令時是否有數據。不要操作任何其他數據庫。因此,這意味着:

1)獲取表的列表 -

SELECT name 
    FROM sqlite_master 
WHERE type = 'table' 

2)遍歷該列表,使用COUNT(*),以確定是否在表中存在的任何行:

SELECT COUNT(*) 
    FROM ~table 

3)如果返回的數字小於1,執行DROP語句:

DROP TABLE ~table 

SQLite沒有福nction或存儲過程支持 - 您必須從您的應用程序執行此操作。

+0

表名是什麼意思? – Pentium10 2010-02-19 22:49:48

+0

@ Pentium10:psuedo變量。如果我使用'$',人們可能會認爲它是一個PHP變量。 '@'是MySQL&SQL Server語法... – 2010-02-19 22:51:08

+0

@ Pentium10:這是一個陷阱! – Hogan 2010-02-19 23:09:23