ON CLUSTER تعديل ملفات تعريف الإعدادات على مستوى العنقود، راجع DDL الموزع.
استبدال الإعدادات مقابل تعديلها
ALTER SETTINGS PROFILE طريقتين مختلفتين لتغيير الإعدادات وملفات التعريف الأصلية (الموروثة) الخاصة بملف تعريف معيّن. ويختلف سلوك كلٍّ منهما كثيرًا، لذا من المهم اختيار الطريقة المناسبة.
صيغة الاستبدال: SETTINGS / INHERIT المجرّدتان
SETTINGS المجرّدة (من دون ADD أو MODIFY أو DROP) تستبدل قائمة الإعدادات بالكامل وجميع ملفات التعريف الأصلية لملف التعريف بما تدرجه أنت حرفيًا. وأي عنصر كان موجودًا مسبقًا ولم يُدرج في القائمة يُحذَف بصمت — من دون أي تحذير.
SETTINGS في CREATE SETTINGS PROFILE: إذ يحدّد هذا البند قائمة الإعدادات الكاملة.
الصيغة التزايدية: ADD / MODIFY / DROP
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.
يُعد SET variable = value اسمًا مستعارًا لـ MODIFY SETTINGS variable = value. وهو متاح لأن SET يبدو أكثر طبيعية، ولأن كتابة عبارة SETTINGS الخاصة بالاستبدال عندما يكون المقصود تغييرًا تزايديًا تُعد خطأً شائعًا.
أمثلة
SHOW CREATE SETTINGS PROFILE:
التزايدي مقابل الاستبدال الكامل
ADD SETTINGS أو MODIFY SETTINGS (راجع الأمثلة أدناه).
ADD مقابل MODIFY
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
MODIFY يدمج حقلًا بعد حقل، فإن تغيير قيمة إعداد فقط يُبقي القيود الحالية كما هي:
ADD SETTINGS
MODIFY، فإن إعادة تنفيذ ADD مع قيمة فقط تؤدي إلى حذف القيود المحددة سابقًا لهذا الإعداد: