public crisps(String flavour, int quantity) { super(flavour); this.quantity = quantity; }
Это должно работать как , см. Документы
Команда, которую вы ищете, - vacuum . Существует также прагма для включения автоматического вакуумирования.
Из документации:
Когда объект (таблица, индекс, триггер, или представление) удаляется из базы данных, она оставляет пустое пространство. Это пустое пространство будет повторно использовано в следующий раз, когда новая информация будет добавлена в базу данных. Но в то же время файл базы данных может быть больше, чем это необходимо. Кроме того, частые вставки, обновления и удаления могут привести к фрагментации информации в базе данных - скомпилировать все файлы базы данных, а не группировать их в одном месте.
Команда VACUUM очищает основную базу данных с помощью копируя его содержимое во временный файл базы данных и перезагружая исходный файл базы данных из копии. Это устраняет бесплатные страницы, выравнивает данные таблицы, чтобы быть смежными, и в противном случае очищает структуру файла базы данных.
blockquote>
Вы можете сделать это
$db->exec("DELETE FROM table");
$db->exec("vacuum");
, и размер файла будет изменен.
Очистка баз данных SQLite имеет две команды, предназначенные для очистки-реиндекса и вакуума. reindex используется для восстановления индексов. Он имеет две формы: reindex collation_name; reindex table_name | index_name;