Разница между Drop и Truncate

Разница между Drop и Truncate
Разница между Drop и Truncate

Видео: Разница между Drop и Truncate

Видео: Разница между Drop и Truncate
Видео: SQL: удаление против усечения против отбрасывания 2024, Апрель
Anonim

Drop vs Truncate

Drop и Truncate - это два оператора SQL (язык структурированных запросов), которые используются в системах управления базами данных, где мы хотим удалить записи данных из базы данных. Операторы Drop и Truncate удаляют все данные в таблице и соответствующий оператор SQL. В этом случае операция удаления неэффективна, поскольку она использует больше места для хранения, чем удаление и усечение.

В случае, если мы хотим удалить таблицу в базе данных вместе со всеми ее данными, SQL позволяет нам легко выполнить это с помощью оператора Drop. Команда удаления - это команда DDL (языка определения данных), которую можно использовать для уничтожения существующей базы данных, таблицы, индекса или представления. Он удаляет всю информацию в таблице, а также структуру таблицы из базы данных. Кроме того, мы можем захотеть просто избавиться от всех данных в таблице, но без таблицы, и мы можем использовать оператор Truncate в SQL в таком сценарии. Truncate также является командой DDL и удаляет все строки в таблице, но сохраняет определение таблицы для использования в будущем.

Отбросить команду

Как упоминалось ранее, команда Drop удаляет определение таблицы и все ее данные, ограничения целостности, индексы, триггеры и права доступа, которые были созданы для этой конкретной таблицы. Таким образом, он полностью удаляет существующий объект из базы данных, и связи с другими таблицами также становятся недействительными после выполнения команды. Также он удаляет всю информацию о таблице из словаря данных. Ниже приводится типичный синтаксис использования оператора Drop для таблицы.

ТАБЛИЦА ПАДЕНИЯ

Нам нужно просто заменить имя таблицы, которую мы хотим удалить из базы данных в приведенном выше примере команды Drop.

Важно отметить, что оператор Drop не может использоваться для удаления таблицы, на которую уже ссылается ограничение внешнего ключа. В этом случае сначала необходимо удалить ссылающееся ограничение внешнего ключа или эту конкретную таблицу. Кроме того, оператор Drop нельзя применить к системным таблицам в базе данных.

Поскольку команда Drop является оператором автоматической фиксации, однажды запущенная операция не может быть отменена, и никакие триггеры не будут запущены. Когда таблица удаляется, все ссылки на нее будут недействительными, и поэтому, если мы хотим снова использовать таблицу, ее необходимо воссоздать со всеми ограничениями целостности и привилегиями доступа. Все связи с другими таблицами также должны быть определены заново.

Команда усечения

Команда Truncate - это команда DDL, которая удаляет все строки в таблице без каких-либо условий, указанных пользователем, и освобождает пространство, используемое таблицей, но структура таблицы с ее столбцами, индексами и ограничениями остается прежней. Truncate удаляет данные из таблицы, освобождая страницы данных, используемые для хранения данных таблицы, и только эти освобождения страниц сохраняются в журнале транзакций. Таким образом, он использует меньше ресурсов журнала транзакций и системных ресурсов по сравнению с другими связанными командами SQL, такими как Delete. Таким образом, Truncate - это немного более быстрый оператор, чем другие. Ниже приведен типичный синтаксис команды Truncate.

ОБРЕЗАТЬ ТАБЛИЦУ

Мы должны заменить имя таблицы, из которой мы хотим удалить все данные, в приведенном выше синтаксисе.

Усечение нельзя использовать в таблице, на которую ссылается ограничение внешнего ключа. Он автоматически использует фиксацию перед тем, как действовать, и другую фиксацию после нее, поэтому откат транзакции невозможен и триггеры не срабатывают. Если мы хотим повторно использовать таблицу, нам нужно только получить доступ к существующему определению таблицы в базе данных.

В чем разница между Drop и Truncate?

Команды Drop и Truncate являются командами DDL, а также операторами автоматической фиксации, поэтому транзакции, выполненные с использованием этих команд, не могут быть отменены.

Основное различие между Drop и Truncate заключается в том, что команда Drop удаляет не только все данные в таблице, но также навсегда удаляет структуру таблицы из базы данных со всеми ссылками, тогда как команда Truncate удаляет только все строки в таблице., и он сохраняет структуру таблицы и ссылки на нее.

Если таблица будет удалена, связи с другими таблицами станут недействительными, а ограничения целостности и права доступа также будут удалены. Поэтому, если таблица требуется для повторного использования, ее необходимо реконструировать с учетом взаимосвязей, ограничений целостности, а также привилегий доступа. Но если таблица усечена, структура таблицы и ее ограничения остаются для использования в будущем, и поэтому любое из вышеуказанных воссозданий не требуется для повторного использования.

Когда применяются эти команды, мы должны использовать их с осторожностью. Кроме того, мы должны лучше понимать природу этих команд, как они работают, а также тщательно планировать их перед их использованием, чтобы не пропустить важные элементы. Наконец, обе эти команды можно использовать для быстрой и простой очистки баз данных с меньшим потреблением ресурсов.

Рекомендуем: