ما الفرق بين ALTER وCHANGE وMODIFY في أعمدة MySQL؟

img

ما الفرق بين ALTER وCHANGE وMODIFY في أعمدة MySQL؟

هذه الأوامر الثلاثة متشابهة ولكن كل واحدة تتميز عن الأخرى بعدة وظائف، إذا أردت التفريق بينهم فيجب عليك معرفة ما يمكن لكل واحدة القيام به؟

هذه المقارنة مخصصة لأوامر الأعمدة فقط.

ما تقوم به  ALTER:

  • حذف الإعدادات الافتراضية (DROP DEFAULT).
  • تغيير الإعدادات الافتراضية (CHANGE DEFAULT ).

مثال:

ALTER TABLE 'table_name' ALTER COLUMN 'column_name' SET DEFAULT 'value';

ما تقوم به CHANGE:

  • تغيير الإعدادات الافتراضية (CHANGE DEFAULT).
  • تغيير اسم العمود (RENAME COLUMN).
  • تغيير نوع بيانات العمود (CHANGE DATATYPE).
  • تغيير ترتيب العمود (COLUMN ORDER ).

مثال:

ALTER TABLE 'table_name' CHANGE 'old_column_name' 'new_column_name' VARCHAR(255) NOT NULL;

ما تقوم به MODIFY:

  • تغيير الإعدادات الافتراضية (CHANGE DEFAULT).
  • تغيير نوع بيانات العمود (CHANGE DATATYPE).
  • تغيير ترتيب العمود (COLUMN ORDER ).

مثال:

ALTER TABLE 'table_name' MODIFY 'column_name' VARCHAR(255) NOT NULL;

 الخلاصة:

مما رأيناه سابقًا فيمكننا معرفة أن الأوامر الثلاثة متشابهة، ولكن ALTER  تستطيع حذف العمود، بينما CHANGE  تستطيع تغيير اسمه،و MODIFY  لا تفعل أي من هذين الأمرين بل تتعامل مع الخصائص الأخرى فقط، وهنا يأتي السؤال، لماذا تم عمل ثلاثة أوامر بدلًا من واحدة تقوم بها جميعها؟

في الحقيقة إن تواجد ثلاثة أوامر يعد ميزة وليس عيبًا، ففي حالة رغبتك بتغيير خصائص عمود دون حذفه أو تعديل اسمه فعليك باستخدام MODIFY ، فهذا سيضمن لك أنك لن تقوم بحذف أو تغيير اسم العمود مصادفة، بينما في حالة رغبتك بتغيير الاسم فاستخدم CHANGE ، ولكن عند استخدامك لـ ALTER  فهنا عليك الحذر، لكي لا تقوم بحذف العمود عن طريق الخطأ!

الكاتب أبو العصافير

أبو العصافير

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

مواضيع متعلقة