Как удалить все пустые таблицы в SQLite? - PullRequest
5 голосов
/ 20 февраля 2010

Я хочу удалить все таблицы, в которых нет строк.

Как удалить все пустые таблицы в SQLite?

EDIT
Мне нужно сделать это на мобильном телефоне (без оболочки). На телефоне с Windows Mobile.

1 Ответ

7 голосов
/ 20 февраля 2010

Таблицы могут быть удалены, независимо от того, есть ли в них данные при выполнении команды. Не знаю какой-либо базы данных, которая работает иначе. Так что это означает:

1) Получение списка таблиц -

SELECT name 
  FROM sqlite_master
 WHERE type = 'table'

2) Переберите этот список, используя COUNT (*), чтобы определить, существуют ли какие-либо строки в таблице:

SELECT COUNT(*) 
  FROM ~table

3) Если возвращенное число меньше 1, выполните инструкцию DROP:

DROP TABLE ~table

SQLite не имеет поддержки функций или хранимых процедур - вам придется делать это из вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...