מה עושה INSERT ON KEY UPDATE ב-MySQL?

Mh Wsh Insert On Key Update B Mysql



בזמן עבודה עם מסד נתונים של MySQL, משתמשים עשויים להיתקל מדי פעם בשגיאת הפרת מפתח כפולה בעת ניסיון להכניס רשומה חדשה לטבלה. שגיאה זו מתרחשת כאשר כבר קיימת שורה עם אותו מפתח ראשי או מפתח ייחודי. עם זאת, ניתן לטפל בבעיה זו על ידי עדכון הרשומות הקיימות בערכים החדשים. במקרים כאלה, הפעלת ' הוסף עדכון מפתח כפול תכונה תפתור ביעילות את הבעיה הזו.

פוסט זה ידגים מהו 'הכנס על עדכון מפתח כפול' וכיצד זה עובד ב-MySQL.







מה עושה INSERT ON KEY UPDATE ב-MySQL?

ב-MySQL, ה הוסף עדכון מפתח כפול הוא תכונה מתקדמת של הצהרת INSERT המשלבת שתי פונקציות לפעולה אחת. לדוגמה, הוא מוסיף רשומה לטבלה ספציפית אם הרשומה הנתונה לא קיימת כבר. עם זאת, אם הרשומה הרצויה כבר קיימת, היא תעדכן את הרשומה הקיימת בערך החדש.



כדי להפעיל את התכונה INSERT ON KEY UPDATE, המשתמשים חייבים לפעול לפי התחביר הנתון להלן:



להכניס לתוך [ שם שולחן ] ( [ col_1 ] , [ col_2 ] ,... )
ערכים ( [ val_1 ] , [ val_2 ] ,... )
על עדכון מפתח כפול [ col_1 ] = [ val_1 ] , [ col_2 ] = [ val_2 ] , ...;





ציין את שם הטבלה, שמות העמודות והערכים לפי בחירתך במקום table_name, col_1, col_2, … ו-val_1, val_2, … וכו'.

דוגמה: כיצד להשתמש בתכונת INSERT ON KEY UPDATE ב-MySQL?



ראשית, התחבר למסד הנתונים של MySQL עם הרשאות מתאימות ולאחר מכן בצע את הפקודה למטה כדי להביא את הנתונים של טבלת 'linuxhint_author':

בחר * FROM linuxhint_author;

הפקודה select מאחזרת את כל הרשומות של טבלת 'linuxhint_author':

כעת הפעל את פקודת SQL הבאה כדי להוסיף או לעדכן רשומה ספציפית בטבלת 'linuxhint_author', כאשר התכונה 'ON DUPLICATE KEY UPDATE' מופעלת:

INSERT INTO linuxhint_author ( תְעוּדַת זֶהוּת , שם, גיל, דירוג מחבר, דוא'ל )
ערכים ( 6 , 'אלכס ג'ונסון' , 29 , 3 , 'alex@example.com' )
על עדכון מפתח כפול
שם = VALUES ( שֵׁם ) ,
גיל = VALUES ( גיל ) ,
authorRank = VALUES ( דירוג מחבר ) ,
אימייל = VALUES ( אימייל ) ;

מכיוון שהרשומה שצוינה לא קיימת כבר בטבלה 'linuxhint_author', היא תוכנס בהצלחה לטבלה שנבחרה:

בוא נכניס רשומה כפולה ונראה כיצד ' על עדכון מפתח כפול עבודת תכונות ב-MySQL:

INSERT INTO linuxhint_author ( תְעוּדַת זֶהוּת , שם, גיל, דירוג מחבר, דוא'ל )
ערכים ( 3 , 'מייקל ג'ונסון' , 28 , 4 , 'michael@example.com' )
על עדכון מפתח כפול
שם = VALUES ( שֵׁם ) ,
גיל = VALUES ( גיל ) ,
authorRank = VALUES ( דירוג מחבר ) ,
אימייל = VALUES ( אימייל ) ;

מהקטע שלמטה, ניתן לראות בבירור שהרשומה הקיימת כבר מעודכנת בהצלחה עם הערכים החדשים:

ניתן להחיל את התכונה 'הוסף מפתח כפול' גם על עמודה ספציפית במקום הרשומה כולה:

INSERT INTO linuxhint_author ( תְעוּדַת זֶהוּת , דירוג מחבר )
ערכים ( 3 , 2 )
בעדכון מפתח כפול מחברRank = VALUES ( דירוג מחבר ) ;

בקוד לעיל, ה-'authorRank' של מחבר עם המזהה '3' מתעדכן לערך חדש '2':

כך פועלת התכונה 'הכנס על עדכון מפתח כפול' ב-MySQL.

סיכום

ב-MySQL, ה הוסף עדכון מפתח כפול הוא תכונה מתקדמת המאפשרת לנו לשלב את הפונקציונליות של הכנסת שורה חדשה ועדכון/שינוי שורה קיימת כבר בפעולה אחת. תכונה זו עוזרת למשתמשים להימנע משגיאת 'הפרת מפתח כפול' כאשר מנסים להכניס שורה חדשה לטבלה מסוימת. פוסט זה הסביר מה זה 'הכנס על עדכון מפתח כפול' וכיצד זה עובד ב-MySQL.