היכרות עם הגדרת הטריגר במאגר ותפקידיו והדוגמאות שלו
ניתן להפוך נתונים למידעצורך באמצעות בסיס נתונים. בתחילה, הנתונים מורכבים מאוסף משתנים אשר ישונו למידע באמצעות פקודות ביצוע שונות. ככה, יש צורך בניהול מסדי נתונים כדי לאחסן את הנתונים עד לביצוע הנתונים.
נכון לעכשיו, רוב מערכות ניהול מסדי הנתוניםפופולרי הוא MySQL. סיבות רבות לכך שמשתמשים רבים משתמשים ב- MySQL, שאחת מהן כמעט נתמכת על ידי מגוון שפות תכנות של MySQL הקיימות כיום.
ב- MySQL, נוצר בסיס נתונים עםבאמצעות מתקני שולחן. בנוסף לטבלאות, MySQL מצויד גם באחת מתכונות ההדק. ואז אתה יודע מה הכוונה על ההדק? ייתכן שהמונח טריגר לא מוכר לשמוע. עם זאת, הטריגרים הופכים לאוסף של פקודות המתבצעות כאשר פעולות שונות מתרחשות בטבלה.
במאמר זה נסבירהבנת הטריגרים, פונקציות ההדק וכמה דוגמאות ליישום הטריגרים ב- MySQL. בדרך זו אתה מתוודע יותר לדיון על טריגרים בפירוט. להלן הדיון הראשון בנושא הגדרת ההדק למטה.
הבנת טריגר
ב- DBMS (מערכת ניהול מסדי נתונים), הטריגר הוא אוסף של סקריפטים שהקשורים לטבלאות, תצוגות או סכמות הפועלות אוטומטית כשיש אירועים המופעלים. האירוע כולל פעולות שבוצעו בדרך כלל בעיבוד בסיס הנתונים, כגון:
- DML (שפת מניפולציה של נתונים) הכוללת DELETE, INSERT או UPDATE
- DDL (שפת הגדרת נתונים) הכוללת CREATE, ALTER או DROP
- פעולות מסד נתונים אחרות, כגון SERVERERROR, LOGON, LOGOFF, STARTUP או SHUTDOWN)
בפשטות, הפקודה ליצור טריגר היא כדלקמן:
[הכנס / עדכן / מחק]
על שולחן nama_
לכל שורה
התחל
// גורם גוף
סוף;
תיאור של צורת הפקודה הכללית ביצירת טריגר, כלומר:
- nama_trigger: שם ההדק שנוצר בהתאם למאפייני השמות ב- MySQL
- [לפני "אחרי": מציג את השעה להפעלת ההפעלה אוטומטית, בין לפני או אחרי שינויים בטבלת נתוני השורות. אז הבחירה היא אחרי או לפני.
- [הכנס | עדכון | DELETE]: משמש לקביעת האירוע שגרם להדק, הבחירה באירוע מורכבת מ- INSER, UPDATE ו- DELETE.
- nama_table: מראה את הטבלה שהטריגר יעשה בה
- trigger_body: מציג את הצהרת הפקודה ב- MySQL שתפעל אוטומטית אם האירוע פעיל.
באופן כללי, ההצהרה הנהוגה ב-טריגר הוא רק פקודה. עם זאת, אם ברצונך לבצע בו כמה פקודות, השתמש בפקודה לחסימה BEGIN ... END. השימוש בטריגרים מתרחש כאשר מתרחשים שינויים בטבלת הרשומות. ככה, שם אתה צריך להוסיף הפניה לרשומה, כלומר OLD ו- NEW. OLD מציין רשומת הפניה לפני ששינוי מתרחש, ואילו OLD מציין הפניה לאחר שחל שינוי.
פונקציית הדק
בדרך כלל במסד נתונים יחסי, מפעילים יכולים להיותנתקל בעת ביצוע פקודת ביצוע הטבלה. זה הופך להיות טריגרים שימושיים יותר כדי להמשיך לכתוב תכנות פשוט ויכולים לשמור על מידע עקבי במסד הנתונים. בנוסף, ישנן מספר פונקציות טריגר שיוסברו להלן.
1. שלמות נתונים
בעזרת טריגר אתה יכול להגןשלמות הטבלה הכלולה במסד הנתונים. מכיוון שאתה יכול לבצע פעולות הקשורות לעיבוד בסיסי נתונים, כגון INSERT, UPDATE ו- DELETE
2. למנוע שגיאה
מפעילים ב- MySQL יכולים למנוע שגיאות בהפעלת נתונים. אם מתרחשת שגיאה בהגדרת ההדק, השגיאה אינה מפריעה להדק הנוכחי.
3. ערוך משימות עבודה מתוזמנות
כאשר ההפעלה מופעלת, תוכלו להשתמש בשפות תכנות שונות מבלי שתצטרכו לבלבל כיצד לגשת אליו.
4. מניעת תהליכי עסקאות לא מורשים
בפועל משתמשים בהדק הרגיללנהל תהליכי עסקה. תוכלו לשמור את רשומת העסקה בטבלה אחרת (היסטוריה) מבלי שתצטרכו לחשוש אם הנתונים מתעדכנים או נמחקים. ניתן לשנות את כל השינויים המתרחשים באופן אקראי על סמך זמן הייצור.
דוגמה להפעיל
אחרי שהבנת את המשמעות של ההדקיחד עם הפונקציות שלו, המחבר ייתן מספר דוגמאות ליישום השימוש בטריגרים במאגר. באופן כללי ניתן להפעיל טריגרים באמצעות אירועים INSERT, UPDATE ו- DELETE. לפרטים נוספים, להלן יוסבר על כמה דוגמאות ליישום האירוע. עם זאת, עליך ליצור תחילה מספר טבלאות במסד הנתונים.
1. טבלת מכירות
sell_INT INT (8) לא אוטו-בינאומי מלא,
customer_code VARCHAR (10) לא אפס,
code_brg VARCHAR (5),
שם הפריט VARCHAR (35),
המספר של INT (6),
המחיר של INT (12),
מפתח ראשוני (sales_id);
2. טבלת הרכישות
קנה INT_8 (8) לא אוטומטית מכונה,
code_brg VARCHAR (5),
שם הפריט VARCHAR (35),
המספר של INT (6),
המחיר של INT (12),
מפתח ראשוני (id_buy);
3. טבלת טובין
id_brg INT (8) לא אוטו-בינלאומי מלא,
שם הפריט VARCHAR (35),
המספר של INT (6),
מפתח ראשוני (id_brg);
השימושים הבאים בטריגרים שאתה צריך לדעת:
א. לפני הכנס TRIGGER
לטריגר זה יש פונקציה להפעיל את משימת ההדק לפני שתהליך הוספת (הכנסת) נתונים בטבלה. להלן תחביר הטריגר ב- MySQL:
לפני הכניסה
על שולחן nama_ לכל שורה
התחל
// הצהרת משתנה
סוף;
לדוגמה, נניח שברצונך לבדוקפעולה של הוספת נתוני פריט חדשים בטבלת הפריטים. אם הפריט הוזן קודם לכן, תופיע אזהרה "מזהה פריט כבר קיים". ואז הפקודה הפשוטה היא:
לפני הכניסה
על מוצרים לכל שורה
התחל
אם לא קיים (בחר id_brg מהפריט איפה id_brg = NEW.id_brg)
ואז
הגדר חדש. שם פריט = שם פריט חדש. חדש. מספר = חדש. מספר;
אחרת
SET @status = CONCAT ('מזהה', NEW.id_brg, 'כבר קיים');
סוף אם;
ב. הדק לאחר הכניסה
לטריגר זה יש פונקציה להפעיל את משימת ההדק לאחר סיום תהליך הוספת (הכנסת) נתונים בטבלה. להלן תחביר הטריגר ב- MySQL:
לאחר הכניסה
על שולחן nama_ לכל שורה
התחל
// הצהרת משתנה
סוף;
לדוגמה, כאשר ברצונך להוסיף נתונים של טובין שנמכרו, באופן אוטומטי הסכום בטבלת הפריטים יקטן. ואז הפקודה עבור מפעילים ב- MySQL היא
לאחר הכניסה
על מכירות עבור כל שורה
התחל
פריט עדכון
סכום הגדרת = חדש סכום
איפה id_brg = חדש. Id_brg,
סוף;
ג. לפני עדכון הדק
לטריגר זה יש פונקציה להפעלת משימות טריגר לפני שתהליך שינוי (עדכון) נתונים בטבלה. להלן תחביר הטריגר ב- MySQL:
לפני העדכון
על שולחן nama_ לכל שורה
התחל
// הצהרת משתנה
סוף;
לדוגמה בטבלת הפריטים עם Id_brg ='BRG001' עם הפריט_name = "צלחת". על ידי שימוש בפקודה BEFORE UPDATE, שם הפריט ישונה ל"זכוכית ". ואז הפקודה המתאימה למקרה לעיל היא:
לפני העדכון לגבי מוצרים לכל שורה
התחל
פריט עדכון
SET item_name = 'זכוכית'
איפה id_brg = 'BRG001 ′; SET @status = CONCAT (' נתוני פריט עם קוד זיהוי ', NEW.id_brg,' עודכן ');</ p>
סוף;
ד. דיפטה אחרי טריגר
לטריגר זה יש פונקציה להפעלת משימות טריגר לפני שתהליך מחיקת (מחיקה) נתונים בטבלה. להלן תחביר הטריגר ב- MySQL:
לאחר מחיקה
על שולחן nama_ לכל שורה
התחל
// הצהרת משתנה
סוף;
לדוגמה, ברצונך למחוק את רשומת הפריטעם id_brg = 'BRG001', item_name = 'זכוכית'. ואז באופן אוטומטי, מלאי הטובין יגדל בהתאם לפריטים הנתונים שנמחקו. בהמשך לתחביר של המחיקה לאחר:
לפני העדכון לגבי מוצרים לכל שורה
התחל
פריט עדכון
סכום SET = סכום + OLD. סכום
איפה id_brg = ישן. סכום;
סוף;
זה הדיון על הבנת ההדק,פונקציות יחד עם דוגמאות ליישום טריגרים באמצעות MySQL. הכותב מקווה שהמאמר שלמעלה עוזר לך להבין ולעשות דוגמאות לטריגרים כמו שצריך.