לפעמים שם העמודה שלנו אינו בעל משמעות, ולכן נדרש לשנות את שם העמודה או לשנות את שם העמודה. MySQL מספק תחביר שימושי שיכול לשנות את שם עמודה אחת או יותר בטבלה. כמה הרשאות חיוניות לפני שינוי שם העמודה, כגון הרשאות הצהרת ALTER ו-DROP.
MySQL יכול לשנות את שם העמודה בשתי דרכים:
- שימוש במשפט CHANGE
- שימוש בהצהרת RENAME
שימוש בהצהרת CHANGE:
להלן התחביר הממחיש את שינוי שם העמודה באמצעות המשפט CHANGE:
החזר הקלד ב-java
ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name Data Type;
בתחביר זה, אנו יכולים לראות כי ייתכן שנדרוש מפרט מחדש של כל תכונות העמודה. תחביר זה יכול גם לאפשר לנו לשנות את סוגי הנתונים של העמודה. אבל לפעמים להצהרת CHANGE עשויים להיות החסרונות הבאים:
- ייתכן שכל המידע של תכונות העמודות לא יהיה זמין ליישום לשינוי שם.
- קיים סיכון לשינוי מקרי בסוג הנתונים שעלול לגרום לאובדן הנתונים של היישום.
דוגמא
הבה נבין כיצד פועלת הצהרת CHANGE MySQL לשנות שם עמודה באמצעות הדוגמאות השונות. נניח שיש לנו טבלה בשם איזון שמכיל את הנתונים כדלקמן:
ההבדל בין תוכנית לתסריט
מסיבה כלשהי, אנחנו צריכים לשנות את שם העמודה account_num יחד עם סוג הנתונים שלו . במקרה זה, אנו בודקים תחילה את מבנה הטבלה באמצעות ה- לְתַאֵר הצהרה כדלקמן:
בתמונה זו, אנו יכולים לראות את סוג הנתונים של שם העמודה account_num הוא int . ואנחנו רוצים לשנות את שם העמודה הזו בתור מספר חשבון וסוג הנתונים שלו as int ל-varchar . לפיכך, אנו יכולים לבצע את ההצהרה שלהלן כדי לעשות זאת:
mysql> ALTER TABLE balance CHANGE COLUMN account_num account_no VARCHAR(25);
לאחר ביצוע הפקודה לעיל, נוכל לאמת אותה על ידי שימוש שוב במשפט DESCRIBE. בתמונה למטה, שם העמודה account_num וסוג הנתונים שלה השתנו בהצלחה.
שימוש בהצהרת RENAME:
כדי להסיר את החיסרון של משפט 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;
לאחר ביצוע הפקודה לעיל, נוכל לאמת אותה באמצעות ה- בחר שוב הצהרה. בתמונה למטה, חשבון שם העמודה השתנה בהצלחה.
hashtable לעומת hashmap
שינוי שמות של עמודות מרובות
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;
דוגמא
נניח שאנחנו רוצים לשנות שמות העמודות id ו-custom_name מ ה שולחן לקוחות . כדי לשנות שמות עמודות מרובים בתוך הצהרה אחת, נוכל להשתמש בהצהרה באופן הבא:
mysql> ALTER TABLE customer CHANGE id cust_id int, CHANGE customer_name cust_name varchar(45);
לאחר ביצוע הפקודה לעיל, נוכל לאמת אותה על ידי שימוש שוב במשפט SELECT. בתמונה למטה, שם העמודה מזהה ושם_לקוח השתנו בהצלחה:
מעדכן java
הבה נשנה שוב את שם העמודה המשתנה כעת באמצעות הצהרת 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 וכיצד לשנות את שם העמודה בטבלה שצוינה, יחד עם דוגמה לשאילתה להבנה טובה יותר.