Redshift: TRUNCATE TABLE, ЕСЛИ СУЩЕСТВУЕТ
Рекомендуется использовать TRUNCATE TABLE
вместо DELETE
, Однако усеченная таблица не поддерживает IF EXISTS
пункт. Альтернативой является DROP TABLE
и воссоздать, но нуждается в DDL. Есть ли способ сделать TRUNCATE TABLE
если только таблица существует?
1 ответ
У вас есть два варианта для достижения этой цели:
Процедура SQL / Скрипт
С помощью IF
условие, проверяя, существует ли таблица, затем только усекать вашу таблицу.
С простыми утверждениями SQL
использование Create
стол с if not exists
в комбинации с Truncate
, это гарантирует, что таблица всегда существует, и ваши последовательные операторы SQL не выдают ошибки и не останавливаются.
CREATE TABLE @tobetruncated IF NOT EXISTS
TRUNCATE TABLE @tobetruncated
ПРИМЕЧАНИЕ. Это не относится к REDSHFIT, в основном применяется ко всем БД, если только он не поддерживает специальные функции (например, такую, как у Oracle
TABLE_EXISTS_ACTION
). Усечение похоже на операцию "все или ничего", и это делает его намного лучше по производительности, чем УДАЛЕНИЕ.