إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
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 ] } [, ...] ) }
المعلمات
-
اسم العمود المراد إضافته. يجب أن يكون الاسم فريدا داخل الجدول.
سيتم إلحاق العمود أو الحقل في النهاية ما لم
FIRSTAFTER 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-
تحديد نوع بيانات العمود أو الحقل. لا تدعم جميع مصادر البيانات جميع أنواع البيانات التي يدعمها Azure Databricks.
COMMENT commentقيمة حرفية اختيارية
STRINGتصف العمود أو الحقل المضاف.إذا كنت تريد إضافة تعليق تم إنشاؤه الذكاء الاصطناعي لعمود جدول أو جدول مدار بواسطة كتالوج Unity، فشاهد إضافة تعليقات تم إنشاؤها الذكاء الاصطناعي إلى كائنات كتالوج Unity.
FIRSTإذا تم تحديد العمود، فستتم إضافة العمود كأول عمود في الجدول، أو ستتم إضافة الحقل كالحقول الأولى في البنية التي تحتوي عليها.
AFTERمعرفإذا تم تحديد العمود أو الحقل، ستتم إضافته مباشرة بعد الحقل أو العمود
identifier.-
ينطبق على:
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 } }
المعلمات
-
اسم العمود المراد تغييره.
-
الاسم المؤهل بالكامل للحقل المراد تغييره. يجب أن تكون كافة مكونات المسار إلى الحقل المتداخل موجودة.
COMMENT commentتغيير وصف
column_nameالعمود.commentيجب أن تكون قيمة حرفيةSTRING.FIRSTأوAFTERالمعرفنقل العمود من موضعه الحالي إلى الأمام (
FIRST) أو على الفورAFTERidentifier. يتم اعتماد هذه العبارة فقط إذا كان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) - تغيير نوع
CHARVARCHARأو عمود إلىSTRING، على سبيل المثال، منVARCHAR(10)إلىSTRING.
يتم اعتماد تغييرات النوع التالية لجداول Delta مع
delta.enableTypeWideningتعيين إلىtrue:هام
هذه الميزة موجودة في المعاينة العامة في Databricks Runtime 15.2 وما فوق.
نوع المصدر أنواع أوسع مدعومة BYTESHORT،INT،BIGINT، ،DECIMALDOUBLESHORTINT، ،BIGINT،DECIMALDOUBLEINTBIGINT، ،DECIMALDOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALبمزيد من الدقة والحجمDATETIMESTAMP_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، تحتاج إلى توفير قيمة في كل عملية مستقبليةINSERTSET 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 محاولة إسقاط الأعمدة غير الموجودة. وإلا، سيؤدي إسقاط الأعمدة غير الموجودة إلى حدوث خطأ.-
اسم العمود الموجود.
-
الاسم المؤهل بالكامل لحقل موجود.
عبارة RENAME COLUMN
ينطبق على:
Databricks SQL
Databricks Runtime 10.4 LTS وما فوق
إعادة تسمية عمود أو حقل في جدول Delta Lake ممكن لتعيين العمود.
عند إعادة تسمية عمود أو حقل، تحتاج أيضا إلى تغيير قيود التحقق التابعة والأعمدة التي تم إنشاؤها. سيتم إسقاط أي مفاتيح أساسية ومفاتيح خارجية تستخدم العمود. في حالة وجود مفاتيح خارجية، يجب أن تمتلك الجدول الذي يتم تعريف المفتاح الخارجي عليه.
للحصول على المتطلبات، وكيفية تمكين تعيين العمود، راجع إعادة تسمية الأعمدة وإفلاتها باستخدام تعيين عمود Delta Lake.
بناء الجملة
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
المعلمات
-
الاسم الموجود للعمود.
-
معرف العمود الجديد. يجب أن يكون المعرف فريدا داخل الجدول.
-
الاسم المؤهل بالكامل للحقل الموجود.
-
معرف الحقل الجديد. يجب أن يكون المعرف فريدا داخل البنية المحلية.
الأمثلة
راجع أمثلة ALTER TABLE.