في بعض الأحيان يكون اسم الجدول الخاص بنا ليس له معنى، لذلك يلزم إعادة تسمية اسم الجدول أو تغييره. يوفر MySQL صيغة مفيدة يمكنها إعادة تسمية جدول واحد أو أكثر في قاعدة البيانات الحالية.
بناء الجملة
فيما يلي بناء الجملة المستخدم لتغيير اسم الجدول:
mysql> RENAME old_table TO new_table;
وهنا علينا أن نتأكد من ذلك new_table_name يجب أن لا تكون موجودة، و old_table_name يجب أن تكون موجودة في قاعدة البيانات. وإلا فإنه سوف يلقي رسالة خطأ. وذلك للتأكد من عدم قفل الجدول وعدم وجود معاملات نشطة قبل تنفيذ هذا البيان.
ملاحظة: إذا استخدمنا عبارة RENAME TABLE، فمن الضروري أن يكون لديك امتيازات ALTER وDROP TABLE للجدول الموجود. كما لا يمكن لهذا البيان تغيير اسم جدول مؤقت.
يمكننا أيضًا استخدام MySQL إعادة تسمية الجدول عبارة لتغيير أكثر من اسم جدول بعبارة واحدة، كما هو موضح أدناه:
RENAME TABLE old_tab1 TO new_tab1, old_tab2 TO new_tab2, old_tab3 TO new_tab3;
من ماي إس كيو إل 8.0.13 الإصدار، يمكننا تغيير اسم الجدول القديم المقفل باستخدام عبارة LOCK واستخدام عبارة WRITE LOCK أيضًا. على سبيل المثال، فيما يلي البيان الصحيح:
mysql> LOCK TABLE old_tab_name1 WRITE; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
البيان التالي غير مسموح به:
mysql> LOCK TABLE old_tab_name1 READ; RENAME TABLE old_tab_name1 TO new_tab_name1, new_tab_name1 TO new_tab_name2;
قبل إصدار MySQL 8.0.13، لم نتمكن من تغيير اسم الجدول الذي تم قفله باستخدام عبارة LOCK TABLE.
تستخدم MySQL أيضًا عبارة RENAME TABLE لنقل جدول من قاعدة بيانات إلى قاعدة بيانات أخرى، كما هو موضح أدناه:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;
مثال على جدول إعادة تسمية MySQL
دعونا نفهم كيفية عمل عبارة RENAME TABLE في MySQL من خلال الأمثلة المتنوعة. لنفترض أن لدينا جدول اسمه موظف ، ولسبب ما، هناك حاجة لتغييره إلى الجدول المسمى عميل .
اسم الجدول: الموظف
بعد ذلك، قم بتنفيذ بناء الجملة التالي لتغيير اسم الجدول:
mysql> RENAME employee TO customer;
انتاج |
صور تخفيض السعر
سنرى أنه سيتم تغيير الجدول المسمى 'الموظف' إلى اسم الجدول الجديد 'العميل':
في الإخراج أعلاه، يمكننا أن نرى أنه إذا استخدمنا موظف اسم الجدول بعد تنفيذ عبارة إعادة تسمية الجدول، فسوف يلقي رسالة خطأ.
كيفية إعادة تسمية جداول متعددة
تتيح لنا عبارة RENAME TABLE في MySQL أيضًا تغيير أكثر من اسم جدول ضمن عبارة واحدة. انظر البيان أدناه:
لنفترض أن قاعدة بياناتنا ' myemployeedb 'وذلك بالجداول التالية:
إذا أردنا تغيير اسم العميل الخاص بالجدول إلى موظف وقمصان اسم الجدول إلى ملابس، فقم بتنفيذ العبارة التالية:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
انتاج |
يمكننا أن نرى أن اسم الجدول العميل في الموظف وقمصان اسم الجدول في الملابس قد تمت إعادة تسميتها بنجاح.
إعادة تسمية الجدول باستخدام عبارة ALTER
يمكن أيضًا استخدام عبارة ALTER TABLE لإعادة تسمية الجدول الموجود في قاعدة البيانات الحالية. فيما يلي بناء جملة عبارة ALTER TABLE:
ALTER TABLE old_table_name RENAME TO new_table_name;
راجع الاستعلام التالي الذي يغير عناصر اسم الجدول الموجودة إلى قمصان أسماء جدول جديدة:
اصطلاح الاسم جافا
mysql> ALTER TABLE garments RENAME TO shirts:
انتاج |
هنا، يمكننا أن نرى أنه تمت إعادة تسمية ملابس اسم الجدول إلى قمصان اسم الجدول.
كيفية إعادة تسمية الجدول المؤقت
يسمح لنا الجدول المؤقت بالاحتفاظ بالبيانات المؤقتة، والتي تكون مرئية ويمكن الوصول إليها في الجلسة الحالية فقط. لذا، نحتاج أولاً إلى إنشاء جدول مؤقت باستخدام العبارة التالية:
mysql> CREATE TEMPORARY TABLE Students( name VARCHAR(40) NOT NULL, total_marks DECIMAL(12,2) NOT NULL DEFAULT 0.00, total_subjects INT UNSIGNED NOT NULL DEFAULT 0);
بعد ذلك، أدخل القيم في هذا الجدول:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
بعد ذلك، قم بتشغيل الأمر show table للتحقق من الجدول المؤقت:
mysql> SELECT * FROM Students;
الآن، قم بتشغيل الأمر التالي لتغيير اسم الجدول المؤقت:
mysql> RENAME TABLE Students TO student_info;
سوف تظهر رسالة خطأ كما هو موضح أدناه:
وبالتالي، يسمح MySQL لعبارة ALTER table بإعادة تسمية الجدول المؤقت:
mysql> ALTER TABLE Students RENAME TO student_info;
انتاج |