לפעמים שם הטבלה שלנו אינו בעל משמעות, ולכן נדרש לשנות את שם הטבלה או לשנות את שם הטבלה. 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;
מ ה MySQL 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
הבה נבין כיצד פועלת המשפט RENAME TABLE ב-MySQL באמצעות הדוגמאות השונות. נניח שיש לנו טבלה בשם עוֹבֵד , ומסיבה כלשהי, יש צורך לשנות אותו לטבלה בשם צרכן .
שם הטבלה: עובד
לאחר מכן, בצע את התחביר הבא כדי לשנות את שם הטבלה:
mysql> RENAME employee TO customer;
תְפוּקָה
הפעל את Java
נראה שהטבלה בשם 'עובד' תשתנה לשם טבלה חדש 'לקוח':
בפלט לעיל, נוכל לראות שאם נשתמש בשם הטבלה עובד לאחר ביצוע משפט RENAME TABLE, הוא ישליך הודעת שגיאה.
כיצד לשנות שם של טבלאות מרובות
משפט 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;
ראה את השאילתה הבאה שמשנה את בגדי שם השולחן הקיימים לחולצות חדשות עם שם שולחן:
כיצד לקרוא קובץ csv ב-java
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 לשנות את שם הטבלה הזמנית:
mysql> ALTER TABLE Students RENAME TO student_info;
תְפוּקָה