ТАБЛИЦА UNDROP
Область применения: Databricks SQL Databricks Runtime 12.2 LTS и выше
Команда UNDROP
решает проблему случайного сброса или удаления управляемых либо внешних таблиц, расположенных в каталоге Unity.
По умолчанию эта команда отменяет (восстанавливает) последнюю сброшенную таблицу, принадлежащую пользователю с заданным именем таблицы.
Должны существовать родительская схема и каталог. Эта функция поддерживает восстановление сброшенных таблиц в течение 7 дней периода хранения.
При наличии нескольких удаленных таблиц с одинаковым именем можно использовать show TABLE DROPPED для идентификации идентификатора таблицы и использования UNDROP TABLE WITH ID
для восстановления определенной таблицы.
Если есть таблица с тем же именем, что и таблица, которую вы хотите восстановить, используйте команду ALTER TABLE RENAME TO , чтобы изменить имя существующей таблицы.
Будут восстановлены метаданные таблицы, такие как привилегии таблицы, спецификация столбцов и свойства.
Ограничения первичного и внешнего ключа не восстанавливаются командой UNDROP
.
Повторно создайте их вручную с помощью ALTER TABLE ADD CONSTRAINT после восстановления таблицы.
Синтаксис
UNDROP TABLE { table_name | WITH ID table_id }
Параметр
-
Имя восстановленной таблицы. Имя не должно содержать временную спецификацию. Если не удается найти таблицу Azure Databricks, возникает ошибка.
table_id
Литерал
STRING
в виде идентификатора UUID таблицы, отображаемой в show TABLE DROPPED.
Разрешения
UNDROP TABLE
требуется одно из следующих базовых разрешений:
- Пользователь является владельцем таблицы, имеет
CREATE TABLE
схемуUSE CATALOG
иUSE SCHEMA
в каталоге. - Пользователь является владельцем схемы и имеет
USE CATALOG
в каталоге. - Пользователь является владельцем каталога.
- Пользователь является владельцем хранилища метаданных.
Если пользователь восстанавливает другую таблицу другого типа, применяются дополнительные разрешения.
Например, чтобы отменить удаление внешней таблицы, необходимо также иметь CREATE EXTERNAL TABLE
данные внешнего расположения или хранилища, которые должны существовать.
После выполнения этой команды владелец таблицы по умолчанию используется для владельца предыдущей таблицы.
При необходимости можно изменить владение с помощью ALTER TABLE
команды.
Примеры
-- UNDROP using the table name
> CREATE TABLE my_catalog.my_schema.my_table (id INT, name STRING);
> DROP TABLE my_catalog.my_schema.my_table;
> UNDROP TABLE my_catalog.my_schema.my_table;
OK
-- UNDROP WITH ID
– Use SHOW TABLES DROPPED to find dropped tables
> SHOW TABLES DROPPED IN my_schema;
catalogname schemaname tablename tableid tabletype deletedat createdat updatedat createdby owner comment
----------- ---------- ---------- ------------------------------------ --------- ----------------------------- ----------------------------- ----------------------------- ------------- ------------- -------
my_catalog my_schema my_table 6ca7be55-8f58-47a7-85ee-7a59082fd17a managed 2023-05-03 AD at 18:17:56 UTC 2023-05-03 AD at 18:17:00 UTC 2023-05-03 AD at 18:17:00 UTC alf@melmak.et alf@melmak.et
my_catalog my_schema my_table b819f397-c51f-4e60-8acc-05d4d4a7e084 managed 2023-05-04 AD at 10:20:00 UTC 2023-05-04 AD at 08:20:00 UTC 2023-05-04 AD at 08:20:00 UTC alf@melmak.et alf@melmak.et
–- Undrop a specific dropped table.
–- Here, we undrop my_table with table id '6ca7be55-8f58-47a7-85ee-7a59082fd17a'.
-- Note that the table id will be a string surrounded by single quotation marks.
> UNDROP TABLE WITH ID '6ca7be55-8f58-47a7-85ee-7a59082fd17a';
OK
– Continuing from the example above, Now we want to undrop table with ID 'b819f397-c51f-4e60-8acc-05d4d4a7e084'.
- First, we rename the existing table
> ALTER TABLE my_table RENAME TO my_other_table
OK
- Then we can undrop table with the name my_table
> UNDROP TABLE WITH ID 'b819f397-c51f-4e60-8acc-05d4d4a7e084'
OK