删除sqlite中包含异常的所有表

时间:2017-01-20 12:09:30

标签: sqlite

我看到this的问题,它提供了一个从sqlite数据库中删除所有表的命令。是否可以添加例外,即删除除表X Y和Z之外的所有表?

由于

编辑我也看到SQL有可能。这个脚本可以翻译成sqlite吗?

1 个答案:

答案 0 :(得分:3)

PRAGMA writable_schema = 1;
DELETE FROM sqlite_master WHERE type = 'table' AND name NOT IN ('X', 'Y', 'Z');
PRAGMA writable_schema = 0;
VACUUM;

或者,获取DDL:

SELECT 'DROP TABLE ' || name || ';' FROM sqlite_master
    WHERE type = 'table' AND name NOT IN ('X', 'Y', 'Z');