جدول UNDROP

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق

UNDROP يعالج الأمر مخاوف الجداول المدارة أو الخارجية الموجودة في كتالوج Unity التي يتم إسقاطها أو حذفها عن طريق الخطأ. بشكل افتراضي، يقوم هذا الأمر بإلغاء قطرة (استرداد) الجدول الذي تم إسقاطه مؤخرا المملوك لمستخدم اسم الجدول المحدد. يجب أن يكون المخطط والكتالوج الأصل موجودين. تدعم هذه الميزة استرداد الجداول التي تم إسقاطها خلال فترة استبقاء 7 أيام.

إذا كان هناك عدة جداول تم إسقاطها بنفس الاسم، يمكنك استخدام SHOW TABLES DROPPED لتعريف معرف الجدول واستخدامه UNDROP TABLE WITH ID لاسترداد جدول معين.

إذا كان هناك جدول بنفس اسم الجدول الذي ترغب في استرداده، فاستخدم الأمر ALTER TABLE RENAME TO لتغيير اسم الجدول الموجود.

سيتم استرداد بيانات تعريف الجدول - مثل امتيازات الجدول ومواصفات العمود والخصائص. لا يتم استرداد قيود المفتاح الأساسي والخارجي بواسطة UNDROP الأمر . أعد إنشائها يدويا باستخدام ALTER TABLE ADD CONSTRAINT بعد استرداد الجدول.

بناء الجملة

UNDROP TABLE { table_name | WITH ID table_id }

المعلمة‬

  • table_name

    اسم الجدول المراد استعادته. يجب ألا يتضمن الاسم مواصفات زمنية. إذا تعذر العثور على الجدول، فإن Azure Databricks يثير خطأ.

  • table_id

    STRING قيمة حرفية في شكل UUID للجدول كما هو معروض بواسطة SHOW TABLES DROPPED.

الأذونات

UNDROP TABLE يتطلب أحد الأذونات الأساسية التالية:

  • المستخدم هو مالك الجدول، لديه CREATE TABLE و USE SCHEMA على المخطط، وعلى USE CATALOG الكتالوج.
  • المستخدم هو مالك المخطط ولديه USE CATALOG على الكتالوج.
  • المستخدم هو مالك الكتالوج.
  • المستخدم هو مالك metastore.

إذا كان المستخدم يسترد نوعا مختلفا من الجدول، يتم تطبيق أذونات إضافية. على سبيل المثال، لإلغاء قطرة جدول خارجي، يجب أن يكون لديك 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