طريقة عرض ALTER (SQL Databricks)

يغير بيانات التعريف المقترنة بوحدة العرض. يمكنه تغيير تعريف طريقة العرض ، وتغيير اسم طريقة العرض إلى اسم مختلف ، وتعيين البيانات الوصفية للعرض وإلغاء تعيينها عن طريق الإعداد TBLPROPERTIES.

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

بناء الجملة

ALTER VIEW view_name
  { rename |
    set_properties |
    unset_properties |
    alter_body |
    owner_to }

rename
  RENAME TO to_view_name

set_properties
  SET TBLPROPERTIES ( property_key = property_val [ , ... ] )

unset_properties
  UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [ , ... ] )

alter_body
  AS query

property_key
  { idenitifier [. ...] | string_literal }

owner_to
  OWNER TO principal

المعلمات

  • view_name

    يحدد طريقة العرض المراد تغييرها.

  • إعادة تسمية إلى to_view_name

    إعادة تسمية طريقة العرض الموجودة داخل المخطط.

    يحدد to_view_name الاسم الجديد لطريقة العرض. إذا كان to_view_name موجودا بالفعل ، يتم طرح a TableAlreadyExistsException . إذا to_view_name كان مؤهلا ، فيجب أن يتطابق مع to_view_nameview_nameمخطط .

  • set_properties

    تعيين خاصية واحدة أو أكثر معرفة من قبل المستخدم لطريقة عرض موجودة. الخصائص هي أزواج القيم الرئيسية. في حالة وجود مفاتيح الخصائص، يتم استبدال القيم بالقيم الجديدة. في حالة عدم وجود مفاتيح الخصائص، تتم إضافة أزواج قيم المفاتيح إلى الخصائص.

    ALTER VIEW البيان لا يدعم SET SERDE أو SET SERDEPROPERTIES خصائص.

    • property_key

      مفتاح الخاصية. يمكن أن يتكون المفتاح من معرف واحد أو أكثر مفصول بنقطة أو سلسلة حرفية.

      يجب أن تكون مفاتيح الخصائص فريدة من نوعها.

    • property_val

      القيمة الجديدة للعقار. يجب أن تكون القيمة حرفية منطقية أو سلسلة أو عدد صحيح أو عشري.

  • unset_properties

    يزيل خاصية واحدة أو أكثر من الخصائص المعرفة من قبل المستخدم ل view_name.

    • إذا كان موجودا

      ما لم IF EXISTS يتم تحديد خطأ يتم مداهمته إذا لم يتم تعيين الخاصية.

    • property_key

      يمكن أن يتكون المفتاح من معرف واحد أو أكثر مفصول بنقطة أو سلسلة حرفية.

      يجب أن تكون مفاتيح الخصائص فريدة من نوعها.

  • استعلام AS

    استعلام يقوم بإنشاء طريقة العرض من الجداول الأساسية أو طرق العرض الأخرى.

    يعادل هذا البند عبارة إنشاء طريقة عرض أو استبدالها في طريقة عرض موجودة.

  • المالك إلى المدير

    نقل ملكية العرض إلى principal. ما لم يتم تعريف طريقة العرض في الملف، hive_metastore يمكنك فقط نقل الملكية إلى مجموعة تنتمي إليها.

أمثلة

-- Rename only changes the view name.
-- The source and target schemas of the view have to be the same.
-- Use qualified or unqualified name for the source and target view.
> ALTER VIEW tempsc1.v1 RENAME TO tempsc1.v2;

-- Verify that the new view is created.
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1       int   NULL
                            c2    string   NULL

  # Detailed Table Information
                      Database   tempsc1
                         Table        v2

-- Before ALTER VIEW SET TBLPROPERTIES
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1       int   null
                            c2    string   null

  # Detailed Table Information
                      Database   tempsc1
                         Table        v2
              Table Properties    [....]

-- Set properties in TBLPROPERTIES
> ALTER VIEW tempsc1.v2 SET TBLPROPERTIES ('created.by.user' = "John", 'created.date' = '01-01-2001' );

-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1                                                   int   NULL
                            c2                                                string   NULL

  # Detailed Table Information
                      Database                                               tempsc1
                         Table                                                    v2
              Table Properties [created.by.user=John, created.date=01-01-2001, ....]

-- Remove the key created.by.user and created.date from `TBLPROPERTIES`
> ALTER VIEW tempsc1.v2 UNSET TBLPROPERTIES (`created`.`by`.`user`, created.date);

-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify the changes
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1       int   NULL
                            c2    string   NULL

  # Detailed Table Information
                      Database   tempsc1
                         Table        v2
              Table Properties    [....]

-- Change the view definition
> ALTER VIEW tempsc1.v2 AS SELECT * FROM tempsc1.v1;

-- Use `DESCRIBE TABLE EXTENDED` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
                            c1                        int   NULL
                            c2                     string   NULL

  # Detailed Table Information
                      Database                    tempsc1
                         Table                         v2
                          Type                       VIEW
                     View Text   select * from tempsc1.v1
            View Original Text   select * from tempsc1.v1

-- Transfer ownership of a view to another user
> ALTER VIEW v1 OWNER TO `alf@melmak.et`