يُجري تغييرات على ملفات تعريف الإعدادات.
الصيغة:
يتيح البند ON CLUSTER تعديل ملفات تعريف الإعدادات على مستوى العنقود، راجع DDL الموزع.
استبدال الإعدادات مقابل تعديلها
يدعم ALTER SETTINGS PROFILE طريقتين مختلفتين لتغيير الإعدادات وملفات التعريف الأصلية (الموروثة) الخاصة بملف تعريف معيّن. ويختلف سلوك كلٍّ منهما كثيرًا، لذا من المهم اختيار الطريقة المناسبة.
إن عبارة SETTINGS المجرّدة (من دون ADD أو MODIFY أو DROP) تستبدل قائمة الإعدادات بالكامل وجميع ملفات التعريف الأصلية لملف التعريف بما تدرجه أنت حرفيًا. وأي عنصر كان موجودًا مسبقًا ولم يُدرج في القائمة يُحذَف بصمت — من دون أي تحذير.
لأن صيغة SETTINGS المجرّدة تستبدل كل شيء بالكامل، فإن استخدامها من أجل “تجاوز إعداد واحد” فوق ملف تعريف أساسي مُعبّأ سيؤدي إلى حذف جميع الإعدادات الأخرى (وجميع ملفات الإعدادات الأصل) في ذلك الملف. إذا كنت تريد فقط تغيير إعداد واحد مع الإبقاء على بقية الإعدادات، فاستخدم الصيغة التزايدية MODIFY/ADD/DROP الموضحة أدناه.
هذا هو السلوك نفسه لـ SETTINGS في CREATE SETTINGS PROFILE: إذ يحدّد هذا البند قائمة الإعدادات الكاملة.
تُغيّر الكلمات المفتاحية ADD وMODIFY وDROP المدخلات الفردية مع ترك كل ما عدا ذلك في ملف التعريف كما هو:
ADD SETTINGS variable = value [constraints] — يضيف إعدادًا غير موجود بعد.
MODIFY SETTINGS variable = value [constraints] — يستبدل مدخلة إعداد واحدة. وتُستبدل المدخلة بالكامل (القيمة والقيود)، لذا أعِد تحديد MIN/MAX/READONLY/إلخ إذا كنت تريد الاحتفاظ بها.
DROP SETTINGS variable [,...] — يزيل الإعدادات المُدرجة.
ADD PROFILES 'profile_name' [,...] / DROP PROFILES 'profile_name' [,...] — يضيف أو يزيل ملفات التعريف الأصلية (الموروثة).
DROP ALL SETTINGS / DROP ALL PROFILES — يزيل جميع الإعدادات أو جميع ملفات التعريف الأصلية.
يمكن دمج عدة بنود من هذه البنود في تعليمة واحدة، على سبيل المثال DROP SETTINGS a ADD SETTINGS b = 1.
تجاوز إعدادًا واحدًا مع الاحتفاظ ببقية إعدادات ملف تعريف مُعدّ مسبقًا:
أضِف إعدادًا مقيّدًا جديدًا واحذف إعدادًا آخر:
أدِر ملفات التعريف الرئيسية بشكل تزايدي:
تحقّق دائمًا من النتيجة باستخدام SHOW CREATE SETTINGS PROFILE:
التزايدي مقابل الاستبدال الكامل
يؤدي استخدام عبارة SETTINGS وحدها إلى إزالة جميع الإعدادات الحالية وجميع ملفات التعريف الموروثة (الأصل) من ملف التعريف قبل تطبيق الإعدادات الجديدة.
لتغيير إعداد واحد مع الإبقاء على بقية الإعدادات، استخدم ADD SETTINGS أو MODIFY SETTINGS (راجع الأمثلة أدناه).
يحافظ كلٌّ من ADD SETTINGS وMODIFY SETTINGS على الإعدادات الأخرى في ملف التعريف، لكنهما يتعاملان بشكل مختلف مع entry موجودة للإعداد نفسه:
ADD SETTINGS variable = value ... يحذف أولًا أي entry موجودة لـ variable ثم يُدرج entry جديدة. لذلك فهو يستبدل القيمة مع جميع القيود الخاصة بذلك الإعداد. وأي MIN أو MAX أو قابلية للكتابة (READONLY/WRITABLE/CONST/CHANGEABLE_IN_READONLY) كانت معرّفة مسبقًا لـ variable ولا تعيد ذكرها، تُحذَف.
MODIFY SETTINGS variable = value ... يقوم بـ merge حقلًا بحقل: إذ يطبّق override فقط على الحقول التي تحددها فعليًا (القيمة، أو MIN، أو MAX، أو قابلية الكتابة) ويُبقي الحقول الأخرى لذلك الإعداد كما هي.
باختصار، استخدم MODIFY SETTINGS عندما تريد فقط تعديل جانب واحد من الإعداد (مثلًا القيمة فقط مع الإبقاء على MAX الحالية)؛ واستخدم ADD SETTINGS عندما تريد إعادة تعريف الإعداد من الصفر.
أنشئ ملف تعريف لاستخدامه في الأمثلة التالية:
أضِف إعدادًا واحدًا أو عدِّله مع الإبقاء على بقية الإعدادات:
لأن MODIFY يدمج حقلًا بعد حقل، فإن تغيير قيمة إعداد فقط يُبقي القيود الحالية كما هي:
أضِف إعدادًا (مع الاحتفاظ بالإعدادات الأخرى أيضًا)، وأعِد تعريفه بالكامل إذا كان موجودًا مسبقًا:
على عكس MODIFY، فإن إعادة تنفيذ ADD مع قيمة فقط تؤدي إلى حذف القيود المحددة سابقًا لهذا الإعداد:
أزِل إعدادًا واحدًا أو أكثر من الإعدادات المُحددة بالاسم:
احذف جميع الإعدادات دفعةً واحدة:
التعامل مع ملفات التعريف الموروثة
أضِف ملفات التعريف الأصلية (الموروثة) أو أزِلها دون التأثير على إعدادات ملف التعريف نفسه: