Дроп против усечения

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

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

Команда сброса

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

DROP TABLE

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

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

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

Усеченная команда

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

TRUNCATE TABLE

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

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

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

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

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

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

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