TABLONUN DAMLASıNı KALDıR
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 12.2 LTS ve üzeri
Komut, UNDROP
Unity Kataloğu'nda bulunan yönetilen veya dış tabloların yanlışlıkla bırakılması veya silinmesiyle ilgili endişeyi giderir.
Varsayılan olarak bu komut verilen tablo adının kullanıcısının sahip olduğu en son bırakılan tablonun damlalarını (kurtarır) kullanır.
Üst şema ve katalog mevcut olmalıdır. Bu özellik, 7 günlük saklama süresi içinde bırakılan tabloları kurtarmayı destekler.
Aynı ada sahip birden çok bırakılan tablo varsa, tablo kimliğini tanımlamak ve belirli bir tabloyu kurtarmak için SHOW TABLES DROPPED kullanabilirsiniz UNDROP TABLE WITH ID
.
Kurtarmak istediğiniz tabloyla aynı ada sahip bir tablo varsa, var olan tablonun adını değiştirmek için ALTER TABLE RENAME TO komutunu kullanın.
Tablo ayrıcalıkları, sütun belirtimi ve özellikler gibi tablo meta verileri kurtarılır.
Birincil ve yabancı anahtar kısıtlamaları komutu tarafından UNDROP
kurtarılmaz.
Tablo kurtarıldıktan sonra ALTER TABLE ADD CONSTRAINT kullanarak bunları el ile yeniden oluşturun.
Sözdizimi
UNDROP TABLE { table_name | WITH ID table_id }
Parametre
-
Geri yüklenecek tablonun adı. Ad bir zamansal belirtim içermemelidir. Tablo bulunamazsa Azure Databricks bir hata oluşturur.
table_id
STRING
SHOW TABLES DROPPED tarafından gösterildiği gibi tablonun UUID biçiminde bir değişmez değer.
İzinler
UNDROP TABLE
aşağıdaki temel izinlerden birini gerektirir:
- Kullanıcı, şemada
USE CATALOG
veUSE SCHEMA
katalogda bulunan ve bulunanCREATE TABLE
tablonun sahibidir. - Kullanıcı şemanın sahibidir ve katalogda bulunur
USE CATALOG
. - Kullanıcı, kataloğun sahibidir.
- Kullanıcı, meta veri deposunun sahibidir.
Kullanıcı farklı bir tablo türünü kurtarıyorsa, ek izinler uygulanır.
Örneğin, dış tablonun damlasını açmak için dış konumda veya depolama kimlik bilgisinde de bulunması CREATE EXTERNAL TABLE
gerekir.
Bu komutu çalıştırdıktan sonra, sahiplik varsayılan olarak önceki tablo sahibine sahiptir.
Gerekirse, sahiplik komutu kullanılarak ALTER TABLE
değiştirilebilir.
Örnekler
-- 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