TRUNCATE в PostgreSQL: очистка таблицы

TRUNCATE в PostgreSQL используется для быстрой очистки всех данных в таблице без регистрации удаления каждой строки в журнале транзакций.

Использование TRUNCATE

Удаление всех строк из таблицы:

TRUNCATE orders;

Очищает таблицу orders, освобождая дисковое пространство.

TRUNCATE CASCADE

Удаление данных с учетом внешних ключей:

TRUNCATE orders CASCADE;

Удаляет все строки из таблицы orders и связанных таблиц, где существуют внешние ключи.

TRUNCATE RESTART IDENTITY

Сброс последовательностей идентификаторов:

TRUNCATE orders RESTART IDENTITY;

Очищает таблицу и сбрасывает счетчик автоинкрементных идентификаторов.

Преимущества TRUNCATE

  • Быстрее, чем DELETE, так как не вызывает триггеры и не записывает каждое удаление в журнал транзакций.
  • Освобождает дисковое пространство сразу после выполнения.
  • Позволяет сбрасывать последовательности идентификаторов при очистке таблицы.