في بعض الأحيان يكون اسم العمود الخاص بنا ليس له معنى، لذا يلزم إعادة تسمية اسم العمود أو تغييره. يوفر MySQL صيغة مفيدة يمكنها إعادة تسمية عمود واحد أو أكثر في الجدول. هناك عدد قليل من الامتيازات الضرورية قبل إعادة تسمية العمود، مثل امتيازات عبارة ALTER وDROP.
يمكن لـ MySQL إعادة تسمية اسم العمود بطريقتين:
- باستخدام بيان التغيير
- باستخدام عبارة RENAME
استخدام بيان التغيير:
فيما يلي بناء الجملة الذي يوضح إعادة تسمية العمود باستخدام عبارة التغيير:
ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name Data Type;
في بناء الجملة هذا، يمكننا أن نرى أننا قد نحتاج إلى إعادة تحديد جميع سمات العمود. يمكن أن يسمح لنا بناء الجملة هذا أيضًا بتغيير أنواع بيانات العمود. لكن في بعض الأحيان قد يكون لبيان التغيير العيوب التالية:
- قد لا تكون جميع معلومات سمات الأعمدة متاحة للتطبيق لإعادة التسمية.
- هناك خطر حدوث تغيير غير مقصود في نوع البيانات مما قد يؤدي إلى فقدان بيانات التطبيق.
مثال
دعونا نفهم كيف يعمل بيان التغيير ماي إس كيو إل لإعادة تسمية عمود من خلال الأمثلة المختلفة. لنفترض أن لدينا جدول اسمه توازن الذي يحتوي على البيانات على النحو التالي:
لسبب ما، نحن بحاجة إلى تغيير اسم العمود account_num مع نوع البيانات الخاص به . في هذه الحالة، نقوم أولاً بالتحقق من بنية الجدول باستخدام الأمر يصف البيان على النحو التالي:
في هذه الصورة، يمكننا أن نرى أن نوع البيانات من اسم العمود account_num يكون كثافة العمليات . ونريد تغيير اسم العمود هذا كـ account_no ونوع بياناته كما كثافة العمليات إلى varchar . وبالتالي، يمكننا تنفيذ البيان أدناه للقيام بذلك:
mysql> ALTER TABLE balance CHANGE COLUMN account_num account_no VARCHAR(25);
بعد تنفيذ الأمر أعلاه، يمكننا التحقق من ذلك باستخدام عبارة DESCRIBE مرة أخرى. في الصورة أدناه، تم تغيير اسم العمود account_num ونوع بياناته بنجاح.
باستخدام بيان إعادة التسمية:
لإزالة عيوب عبارة CHANGE، اقترحت MySQL الصيغة التالية التي توضح تغيير اسم العمود باستخدام عبارة RENAME:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
مثال
دعونا نفهم كيف تعمل عبارة RENAME في MySQL لتغيير اسم العمود من خلال الأمثلة المختلفة. لنفترض أن لدينا جدول اسمه عميل الذي يحتوي على البيانات التالية:
لنفترض أننا نريد تغيير حساب اسم العمود باستخدام رقم الحساب دون تغيير أنواع البيانات الخاصة به. يمكننا القيام بذلك عن طريق تنفيذ العبارة التالية:
mysql> ALTER TABLE customer RENAME COLUMN account to account_no;
بعد تنفيذ الأمر أعلاه، يمكننا التحقق من ذلك باستخدام الأمر يختار بيان مرة أخرى. في الصورة أدناه، تم تغيير حساب اسم العمود بنجاح.
إعادة تسمية أعمدة متعددة
يسمح لنا MySQL أيضًا بتغيير أسماء الأعمدة المتعددة ضمن عبارة واحدة. إذا أردنا إعادة تسمية أسماء أعمدة متعددة، فقد نستخدم بناء الجملة أدناه:
ALTER TABLE table_name CHANGE old_column_name1 new_column_name1 Data Type, CHANGE old_column_name2 new_column_name2 Data Type, ... ... CHANGE old_column_nameN new_column_nameN Data Type;
أو
ALTER TABLE table_name RENAME COLUMN old_column_name1 TO new_column_name1, RENAME COLUMN old_column_name2 TO new_column_name2, ... ... RENAME COLUMN old_column_nameN TO new_column_nameN;
مثال
لنفترض أننا نريد التغيير معرف أسماء الأعمدة وcustomer_name من جدول العملاء . لتغيير أسماء أعمدة متعددة ضمن عبارة واحدة، يمكننا استخدام العبارة على النحو التالي:
mysql> ALTER TABLE customer CHANGE id cust_id int, CHANGE customer_name cust_name varchar(45);
بعد تنفيذ الأمر أعلاه، يمكننا التحقق من ذلك باستخدام عبارة SELECT مرة أخرى. في الصورة أدناه، تم تغيير معرف اسم العمود واسم_العميل بنجاح:
دعونا مرة أخرى نغير اسم العمود المعدل حاليًا من خلال عبارة RENAME COLUMN كما يلي:
mysql> ALTER TABLE customer RENAME COLUMN cust_id TO id, RENAME COLUMN cust_name TO customer_name;
بعد تنفيذ الأمر أعلاه، يمكننا التحقق من ذلك باستخدام عبارة DESCRIBE مرة أخرى. في الصورة أدناه، اسم العمود cust_id وcust_name تم التغيير بنجاح:
تعرفنا في هذه المقالة على مقدمة عن عمود MySQL RENAME وكيفية تغيير اسم العمود في جدول محدد، بالإضافة إلى مثال استعلام لفهم أفضل.