TRUNCATE
в PostgreSQL используется для быстрой очистки всех данных в таблице без регистрации удаления каждой строки в журнале транзакций.
Использование TRUNCATE
Удаление всех строк из таблицы:
TRUNCATE orders;
Очищает таблицу orders
, освобождая дисковое пространство.
TRUNCATE CASCADE
Удаление данных с учетом внешних ключей:
TRUNCATE orders CASCADE;
Удаляет все строки из таблицы orders
и связанных таблиц, где существуют внешние ключи.
TRUNCATE RESTART IDENTITY
Сброс последовательностей идентификаторов:
TRUNCATE orders RESTART IDENTITY;
Очищает таблицу и сбрасывает счетчик автоинкрементных идентификаторов.
Преимущества TRUNCATE
- Быстрее, чем
DELETE
, так как не вызывает триггеры и не записывает каждое удаление в журнал транзакций. - Освобождает дисковое пространство сразу после выполнения.
- Позволяет сбрасывать последовательности идентификаторов при очистке таблицы.