SobesLab логотип SobesLab

Ответ

DELETE удаляет строки из таблицы построчно – можно удалить как все, так и выборочные (с WHERE). Удаление через DELETE можно откатить (если транзакция не зафиксирована) и оно вызывает соответствующие триггеры. TRUNCATE же мгновенно удаляет все строки таблицы целиком, без возможности фильтра (всегда чистит всю таблицу). TRUNCATE работает быстрее, но транзакционно ведет себя как DDL – обычно его нельзя откатить (в большинстве СУБД) и триггеры для отдельных строк при нем не запускаются; также TRUNCATE сбрасывает счётчик автоинкремента, если такой есть.