TABEL UNDROP

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya 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

  • table_name

    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 dan USE SCHEMA pada skema, dan USE 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