DROP TABLE (удаление таблицы)
Важно
Поддержка синтаксиса PostgreSQL в YDB находится в разработке. Использовать её в production окружениях не рекомендуется. Запросы в PostgreSQL могут исполняться до нескольких раз медленнее по сравнению с аналогичными запросами на YQL.
Основной сценарий, который можно тестировать — выполнение аналитических запросов к хранимым в YDB данным.
Синтаксис инструкции DROP TABLE
:
DROP TABLE [IF EXISTS] <table name>;
Инструкция DROP TABLE <table name>;
предназначена для удаления таблицы. Например: DROP TABLE people;
. Если удаляемая таблица отсутствует – будет выведено сообщение об ошибки:
Error: Cannot find table '...' because it does not exist or you do not have access permissions. Please check correctness of table path and user permissions., code: 2003
В ряде сценариев такое поведение не требуется. Например, если мы хотим гарантированно создать новую таблицу с удалением предыдущий в рамках одного SQL-скрипта или последовательности SQL-команд. В таких случаях применяется инструкция DROP TABLE IF EXIST <table name>
. В случае отсутствия таблицы инструкция вернет сообщение DROP TABLE
, а не ошибку.
Примечание
В отличии от PostgreSQL, в YDB с используются оптимистические блокировки. Это значит, что транзакции проверяют условия выполнения необходимых блокировок в конце своей работы, а не в начале. Если за время выполнения транзакции блокировка была нарушена – такая транзакция завершится ошибкой Transaction locks invalidated
. В этом случае можно попробовать выполнить аналогичную транзакцию снова.