Middle
18
0
questionbank

В чем разница между операторами DELETE и TRUNCATE?

Ответ от нейросети sobes.tech

DELETE удаляет строки по одной, записывая каждое удаление в лог транзакций. Поддерживает операторы WHERE для выборочного удаления и возвращает количество удаленных строк. Может быть откачен (ROLLBACK).

TRUNCATE удаляет все строки из таблицы, освобождая используемое пространство, без записи отдельных удалений в лог транзакций (записывается только факт операции). Не поддерживает операторы WHERE. Как правило, выполняется быстрее, чем DELETE без условия WHERE. TRUNCATE не запускает триггеры ON DELETE. Не может быть полностью откачен в большинстве случаев, так как операция считается DDL (Data Definition Language), хотя в некоторых СУБД (например, PostgreSQL) TRUNCATE может участвовать в транзакциях и быть откачен.

Ключевые отличия:

| Признак | DELETE | TRUNCATE

DELETE удаляет строки по одной, записывая каждое удаление в лог транзакций. Поддерживает операторы WHERE для выборочного удаления и возвращает количество удаленных строк. Может быть откачен (ROLLBACK).

TRUNCATE удаляет все строки из таблицы, освобождая используемое пространство, без записи отдельных удалений в лог транзакций (записывается только факт операции). Не поддерживает операторы WHERE. Как правило, выполняется быстрее, чем DELETE без условия WHERE. TRUNCATE не запускает триггеры ON DELETE. Не может быть полностью откачен в большинстве случаев, так как операция считается DDL (Data Definition Language), хотя в некоторых СУБД (например, PostgreSQL) TRUNCATE может участвовать в транзакциях и быть откачен.

Ключевые отличия:

| Признак | DELETE | TRUNCATE

Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.

sqldmlddldatabase-managementperformancedata-integrity