TABEL UNDROP
Berlaku untuk: Databricks SQL Databricks Runtime 12.2 LTS ke atas
Perintah mengatasi UNDROP
kekhawatiran tabel terkelola atau eksternal yang terletak di Katalog Unity yang secara tidak sengaja dihilangkan atau dihapus.
Secara default, perintah ini melepas (memulihkan) tabel yang terakhir dihilangkan yang dimiliki oleh pengguna nama tabel yang diberikan.
Skema dan katalog induk harus ada. Fitur ini mendukung pemulihan tabel yang dihilangkan dalam periode retensi 7 hari.
Jika ada beberapa tabel yang dihilangkan dengan nama yang sama, Anda dapat menggunakan SHOW TABLES DROPPED untuk mengidentifikasi ID tabel dan menggunakan UNDROP TABLE WITH ID
untuk memulihkan tabel tertentu.
Jika ada tabel dengan nama yang sama dengan tabel yang ingin Anda pulihkan, gunakan perintah ALTER TABLE RENAME TO untuk mengubah nama tabel yang ada.
Metadata tabel – seperti hak istimewa tabel, spesifikasi kolom, dan properti – akan dipulihkan.
Batasan kunci primer dan asing tidak dipulihkan oleh UNDROP
perintah .
Buat ulang secara manual menggunakan ALTER TABLE ADD CONSTRAINT setelah tabel dipulihkan.
Sintaks
UNDROP TABLE { table_name | WITH ID table_id }
Parameter
-
Nama tabel yang akan dipulihkan. Nama tidak boleh menyertakan spesifikasi temporal. Jika tabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan.
table_id
Harfiah
STRING
dalam bentuk UUID tabel seperti yang ditampilkan oleh SHOW TABLES DROPPED.
Izin
UNDROP TABLE
memerlukan salah satu izin dasar berikut:
- Pengguna adalah pemilik tabel, memiliki
CREATE TABLE
danUSE SCHEMA
pada skema, danUSE CATALOG
pada katalog. - Pengguna adalah pemilik skema dan memiliki
USE CATALOG
pada katalog. - Pengguna adalah pemilik katalog.
- Pengguna adalah pemilik metastore.
Jika pengguna memulihkan jenis tabel yang berbeda, izin tambahan berlaku.
Misalnya, untuk membatalkan status tabel eksternal, Anda juga harus memiliki CREATE EXTERNAL TABLE
di lokasi eksternal atau kredensial penyimpanan, yang harus ada.
Setelah menjalankan perintah ini, kepemilikan default ke pemilik tabel sebelumnya.
Jika diperlukan, kepemilikan dapat diubah menggunakan ALTER TABLE
perintah .
Contoh
-- 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