MySQL - כיצד להוסיף שורה חדשה רק אם אין נתונים

Mysql Kyzd Lhwsyp Swrh Hdsh Rq M Yn Ntwnym



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

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

הוסף שורה חדשה רק אם אין נתונים קיימים באמצעות הצהרת 'INSERT IGNORE'.

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







לְהַכנִיס להתעלם לְתוֹך [ שולחן - שֵׁם ] ( [ עמודה 1 - שֵׁם ] , [ עמודה 2 - שֵׁם ] , [ עמודה 3 - שֵׁם ] ) ערכים ( [ ערך1 ] , [ ערך2 ] , [ ערך 3 ] ) ;

בוא נראה דוגמה אם המשתמש רוצה להזין ערך שורה ' 1 ', ' ג'ון ' ו' צְבִיָה ' בתוך ה ' צרכן ' טבלה עבור העמודות ' תְעוּדַת זֶהוּת ,' ' שם פרטי ' ו' שם משפחה ' בהתאמה. הפעל שאילתה זו כדי להוסיף ערכים אלה אם קיימים אם אין שורה עם ערכים אלה כבר קיימת:



בחר * מ צרכן;
לְהַכנִיס להתעלם לְתוֹך צרכן ( תְעוּדַת זֶהוּת , שם פרטי , שם משפחה ) ערכים ( 1 , 'ג'ון' , 'צְבִיָה' ) ;

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







הוסף שורה חדשה רק אם אין נתונים קיימים באמצעות סעיף 'WHERE NOT EXISTS'

ב-MySQL, ה' איפה לא קיים פסקת ' מונעת את הוספת שורות אם הן כבר קיימות בטבלה כאשר היא משמשת ב' להכניס לתוך ' משפט עם שאילתת משנה להגדרת תנאי. כאשר נעשה שימוש בסעיף זה עם שאילתת המשנה ' (בחר * FROM [שם שולחן] [שם עמודה]=[ביטוי]); ” בודק אם קיימת שורה בטבלה שממלאת את התנאי. אם קיימת שורה, ' איפה לא קיים פסקת ' תחזיר ערך שגוי, וה' בחר ' ההצהרה לא תחזיר אף שורות. כתוצאה מכך, השורה לא תוכנס לטבלה. התחביר מסופק להלן:

לְהַכנִיס לְתוֹך [ שולחן - שֵׁם ] ( [ עמודה 1 - שֵׁם ] , [ עמודה 2 - שֵׁם ] , [ עמודה 3 - שֵׁם ] )
בחר [ ערך1 ] , [ ערך2 ] , [ ערך 3 ]
איפה לֹא קיים ( בחר * מ [ שולחן - שֵׁם ] [ טור - שֵׁם ] = [ ביטוי ] ) ;

בוא נראה דוגמה אם המשתמש רוצה להוסיף שורה בטבלת העובדים המכילה ערכים ' 1 ', ' אֲמֶרִיקָאִי ' ו' הנריוט 'בעמודות' תְעוּדַת זֶהוּת ', ' שם החברה ' ו' שם איש קשר ' בהתאמה. אבל רק אם שורה עם מזהה של ' 1 ” לא נמצא בטבלה או שהוא לא קיים. במקרה הספציפי הזה, השאילתה תהפוך:



בחר * מ עוֹבֵד;

לְהַכנִיס לְתוֹך עוֹבֵד ( תְעוּדַת זֶהוּת , שם החברה , שם איש קשר )
בחר 1 , 'אֲמֶרִיקָאִי' , 'הנריוט'
איפה לֹא קיים ( בחר * מ עוֹבֵד איפה תְעוּדַת זֶהוּת = 1 ) ;

הפלט מציג שורה חדשה שלא הוכנסה בתור השורה עם ' תְעוּדַת זֶהוּת ' שווה ל ' 1 'כבר היה קיים.

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

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

לְהַכנִיס לְתוֹך [ שולחן - שֵׁם ] ( [ עמודה 1 - שֵׁם ] , [ עמודה 2 - שֵׁם ] , [ עמודה 3 - שֵׁם ] ) ערכים ( [ ערך1 ] , [ ערך2 ] , [ ערך 3 ] )
עַל לְשַׁכְפֵּל מַפְתֵחַ עדכון [ עמודה 1 - שֵׁם ] = [ עמודה 1 - שֵׁם ] ;

בוא נראה דוגמה, כדי להוסיף ערכים ב' 2 ', ' פסקלה ', ' ניקסון ', ' לונדון ', ' בְּרִיטַנִיָה '(171) 555-7788 ' בשולחן ' צרכן ' עבור העמודות ' תְעוּדַת זֶהוּת ', ' שם פרטי ', ' שם משפחה ', ' עִיר ', ' מדינה ' ו' טלפון ' בהתאמה. אם השורה לא קיימת כבר, היא תוכנס. אחרת, הוא יעדכן את הערכים שבהם ' Id=Id 'תנאי עומד. הפעל את השאילתה הזו:

בחר * מ צרכן ;
לְהַכנִיס לְתוֹך צרכן ( תְעוּדַת זֶהוּת , שם פרטי , שם משפחה , עִיר , מדינה , טלפון )
ערכים ( 2 , 'פסקלה' , 'ניקסון' , 'לונדון' , 'בְּרִיטַנִיָה' , '(171) 555-7788' )
עַל לְשַׁכְפֵּל מַפְתֵחַ עדכון תְעוּדַת זֶהוּת = תְעוּדַת זֶהוּת;

זו הטבלה לפני הפעלת השאילתה, אתה יכול לראות ' תְעוּדַת זֶהוּת ' שווה ל ' 2 ' לא קיים:

לאחר הפעלת השאילתה, שאילתה זו תוסיף שורות חדשות בטבלה:

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

סיכום

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