SQLite Truncate Table
В SQLite нет команды TRUNCATE TABLE, но вы можете использовать команду SQLiteDELETEDELETE для удаления всех данных из существующей таблицы.
Синтаксис
Базовый синтаксис команды DELETE выглядит следующим образом:
sqlite> DELETE FROM table_name;
Однако этот метод не позволяет сбросить значение автоинкремента в ноль.
Если вы хотите сбросить значение автоинкремента в ноль, можно использовать следующий метод:
sqlite> DELETE FROM sqlite_sequence WHERE name = 'table_name';
Когда база данных SQLite содержит столбец с автоинкрементом, автоматически создается таблица с именем sqlite_sequence. Эта таблица содержит два столбца: name и seq. Столбец name хранит имя таблицы, в которой находится столбец с автоинкрементом, а seq хранит текущий номер последовательности (номер следующей записи равен текущему номеру последовательности плюс 1). Если вы хотите сбросить номер последовательности для конкретного столбца с автоинкрементом в ноль, вам просто нужно изменить таблицу sqlite_sequence.
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'table_name';
Примеры
Предположим, таблица COMPANY содержит следующие записи:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Ниже приведен пример удаления записей из вышеуказанной таблицы:
SQLite> DELETE FROM sqlite_sequence WHERE name = 'COMPANY'; SQLite> VACUUM;
Теперь записи в таблице COMPANY полностью удалены, и использование оператора SELECT не даст никакого вывода.
Другие расширения