ALTER TABLE عبارة COLUMN

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

إضافة عمود أو تعديله أو إسقاطه في جدول أو حقل في عمود في جدول Delta Lake.

الأذونات المطلوبة

إذا كنت تستخدم كتالوج Unity، يجب أن يكون لديك MODIFY إذن ل:

  • تغيير العمود
  • إضافة عمود
  • إسقاط عمود

تتطلب جميع العمليات الأخرى ملكية الجدول.

بناء الجملة

ALTER TABLE table_name
   { ADD COLUMN clause |
     ALTER COLUMN clause |
     DROP COLUMN clause |
     RENAME COLUMN clause }

عبارة ADD COLUMN

هذه العبارة غير معتمدة لمصادر JDBC البيانات.

إضافة عمود واحد أو أكثر إلى الجدول، أو حقول إلى أعمدة موجودة في جدول Delta Lake.

إشعار

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

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression

بناء الجملة

{ ADD [ COLUMN | COLUMNS ]
  ( { { column_identifier | field_name } data_type
      [ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
      [ MASK clause ] } [, ...] ) }

المعلمات

  • column_identifier

    اسم العمود المراد إضافته. يجب أن يكون الاسم فريدا داخل الجدول.

    سيتم إلحاق العمود أو الحقل في النهاية ما لم FIRST AFTER name يتم تحديدهما.

  • field_name

    الاسم المؤهل بالكامل للحقل المراد إضافته إلى عمود موجود. يجب أن تكون كافة مكونات المسار إلى الحقل المتداخل موجودة ويجب أن يكون اسم الحقل نفسه فريدا.

  • DEFAULT default_expression

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

    DEFAULT تعريف قيمة للعمود الذي يتم استخدامه في INSERT وعندما MERGE ... INSERT لا يتم تحديد العمود.

    إذا لم يتم تحديد أي افتراضي، DEFAULT NULL يتم تضمينه للأعمدة التي تقبل القيم الخالية.

    default_expression قد تتكون من القيم الحرفية، ووظائف SQL المضمنة أو عوامل التشغيل باستثناء:

    default_expression يجب ألا يحتوي على أي طلب فرعي.

    DEFAULTمعتمد للمصادر CSVJSONPARQUETو و.ORC

  • data_type

    تحديد نوع بيانات العمود أو الحقل. لا تدعم جميع مصادر البيانات جميع أنواع البيانات التي يدعمها Azure Databricks.

  • COMMENT comment

    قيمة حرفية اختيارية STRING تصف العمود أو الحقل المضاف.

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

  • FIRST

    إذا تم تحديد العمود، فستتم إضافة العمود كأول عمود في الجدول، أو ستتم إضافة الحقل كالحقول الأولى في البنية التي تحتوي عليها.

  • AFTERمعرف

    إذا تم تحديد العمود أو الحقل، ستتم إضافته مباشرة بعد الحقل أو العمود identifier.

  • عبارة MASK

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

    هام

    هذه الميزة في المعاينة العامة.

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

عبارة ALTER COLUMN

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

تغيير خاصية أو موقع عمود.

بناء الجملة

{ { ALTER | CHANGE } [ COLUMN ] { column_identifier | field_name }
  { COMMENT comment |
    { FIRST | AFTER column_identifier } |
    { SET | DROP } NOT NULL |
    TYPE data_type |
    SET DEFAULT clause |
    DROP DEFAULT |
    SYNC IDENTITY |
    SET { MASK clause } |
    DROP MASK |
    SET TAGS clause |
    UNSET TAGS clause } }

المعلمات

  • column_identifier

    اسم العمود المراد تغييره.

  • field_name

    الاسم المؤهل بالكامل للحقل المراد تغييره. يجب أن تكون كافة مكونات المسار إلى الحقل المتداخل موجودة.

  • COMMENT comment

    تغيير وصف column_name العمود. comment يجب أن تكون قيمة حرفية STRING .

  • FIRST أو AFTERالمعرف

    نقل العمود من موضعه الحالي إلى الأمام (FIRST) أو على الفور AFTER identifier. يتم اعتماد هذه العبارة فقط إذا كان table_name جدول Delta.

  • TYPEdata_type

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

    تغيير نوع column_name بيانات العمود.

    يتم اعتماد هذه العبارة فقط إذا كان table_name جدول Delta.

    يتم اعتماد تغييرات النوع التالية لكافة جداول Delta:

    • زيادة حجم VARCHAR عمود، على سبيل المثال، من VARCHAR(5) إلى VARCHAR(10)
    • تغيير نوع CHAR العمود إلى VARCHAR، على سبيل المثال، من CHAR(5) إلى VARCHAR(5)
    • تغيير نوع CHAR VARCHAR أو عمود إلى STRING، على سبيل المثال، من VARCHAR(10) إلى STRING.

    يتم اعتماد تغييرات النوع التالية لجداول Delta مع delta.enableTypeWidening تعيين إلى true:

    هام

    هذه الميزة موجودة في المعاينة العامة في Databricks Runtime 15.2 وما فوق.

    نوع المصدر أنواع أوسع مدعومة
    BYTE SHORT، INT، BIGINT، ، DECIMALDOUBLE
    SHORT INT، ، BIGINT، DECIMALDOUBLE
    INT BIGINT، ، DECIMALDOUBLE
    BIGINT DECIMAL, DOUBLE
    FLOAT DOUBLE
    DECIMAL DECIMAL بمزيد من الدقة والحجم
    DATE TIMESTAMP_NTZ

    لمزيد من المعلومات التفصيلية حول توسيع النوع، راجع توسيع النوع.

  • SET NOT NULL أو DROP NOT NULL

    تغيير مجال قيم الأعمدة الصالحة لاستبعاد القيم الخالية SET NOT NULL، أو تضمين القيم الخالية DROP NOT NULL. هذا الخيار معتمد فقط لجداول Delta Lake. سيضمن Delta Lake أن القيد صالح لجميع البيانات الموجودة والجديدة.

  • SYNC IDENTITY

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

    مزامنة بيانات التعريف لعمود الهوية مع البيانات الفعلية. عند كتابة القيم الخاصة بك إلى عمود هوية، قد لا يتوافق مع بيانات التعريف. يقوم هذا الخيار بتقييم الحالة وتحديث بيانات التعريف لتكون متسقة مع البيانات الفعلية. بعد هذا الأمر، ستبدأ قيمة الهوية المعينة تلقائيا التالية من start + (n + 1) * step، حيث n تكون أصغر قيمة تفي start + n * step >= max() بها (لخطوة إيجابية).

    هذا الخيار مدعوم فقط لأعمدة الهوية في جداول Delta Lake.

  • DROP DEFAULT

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

    إزالة التعبير الافتراضي من العمود. بالنسبة للأعمدة التي تقبل القيم الخالية، يكون هذا مكافئا ل SET DEFAULT NULL. بالنسبة للأعمدة المعرفة بهاNOT NULL، تحتاج إلى توفير قيمة في كل عملية مستقبلية INSERT

  • SET DEFAULT default_expression

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

    DEFAULT تعريف قيمة للعمود الذي يتم استخدامه في INSERT وعندما MERGE ... INSERT لا يتم تحديد العمود.

    إذا لم يتم DEFAULT NULL تحديد أي افتراضي، تضمينه للأعمدة التي تقبل القيم الخالية.

    default_expression قد تتكون من قيم حرفية أو دالات SQL مضمنة أو عوامل تشغيل باستثناء:

    default_expression يجب ألا يحتوي على الاستعلام الفرعي.

    DEFAULTمعتمد للمصادر CSVJSONORCو و.PARQUET

    عند تعريف الإعداد الافتراضي لعمود تمت إضافته حديثا، ينطبق الإعداد الافتراضي على كافة الصفوف الموجودة مسبقا. إذا كان الافتراضي يتضمن دالة غير محددة مثل rand أو current_timestamp يتم حساب القيمة مرة واحدة عند ALTER TABLE تنفيذ ، وتطبيقها كثابت على الصفوف الموجودة مسبقا. بالنسبة للصفوف المدرجة حديثا، يتم تشغيل التعبير الافتراضي مرة واحدة لكل صف.

    عند تعيين افتراضي باستخدام ALTER COLUMN، لا تتأثر الصفوف الموجودة بهذا التغيير.

  • SETعبارة MASK

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

    هام

    هذه الميزة في المعاينة العامة.

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

  • DROP MASK

    ينطبق على: وضع علامة كتالوج Unity فقط

    هام

    هذه الميزة في المعاينة العامة.

    إزالة قناع العمود لهذا العمود، إن وجد. ستتلقى الاستعلامات المستقبلية من هذا العمود القيم الأصلية للعمود.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

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

    تطبيق العلامات على العمود. تحتاج إلى إذن APPLY TAG لإضافة علامات إلى العمود.

    • tag_name

      قيمة حرفية STRING. tag_name يجب أن يكون فريدا داخل الجدول أو العمود.

    • tag_value

      قيمة حرفية STRING.

  • UNSET TAGS ( tag_name [, ...] )

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

    إزالة العلامات من العمود. يجب أن يكون لديك APPLY TAG إذن لإزالة العلامات من العمود.

    • tag_name

      قيمة حرفية STRING. tag_name يجب أن يكون فريدا داخل الجدول أو العمود.

عبارة DROP COLUMN

هام

هذه الميزة في المعاينة العامة.

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

إسقاط عمود أو حقل واحد أو أكثر في جدول Delta Lake.

عند إسقاط عمود أو حقل، يجب إسقاط قيود التحقق التابعة والأعمدة التي تم إنشاؤها.

للحصول على المتطلبات، راجع إعادة تسمية الأعمدة وإفلاتها باستخدام تعيين عمود Delta Lake.

بناء الجملة

DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )

المعلمات

  • IF EXISTS

    عند تحديد IF EXISTS، يتجاهل Azure Databricks محاولة إسقاط الأعمدة غير الموجودة. وإلا، سيؤدي إسقاط الأعمدة غير الموجودة إلى حدوث خطأ.

  • column_identifier

    اسم العمود الموجود.

  • field_name

    الاسم المؤهل بالكامل لحقل موجود.

عبارة RENAME COLUMN

هام

هذه الميزة في المعاينة العامة.

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

إعادة تسمية عمود أو حقل في جدول Delta Lake.

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

للحصول على المتطلبات، راجع إعادة تسمية الأعمدة وإفلاتها باستخدام تعيين عمود Delta Lake.

بناء الجملة

RENAME COLUMN { column_identifier TO to_column_identifier|
                field_name TO to_field_identifier }

المعلمات

  • column_identifier

    الاسم الموجود للعمود.

  • to_column_identifier

    معرف العمود الجديد. يجب أن يكون المعرف فريدا داخل الجدول.

  • field_name

    الاسم المؤهل بالكامل للحقل الموجود.

  • to_field_identifier

    معرف الحقل الجديد. يجب أن يكون المعرف فريدا داخل البنية المحلية.

الأمثلة

راجع أمثلة ALTER TABLE.