כיצד להשבית טריגר באורקל

Kyzd Lhsbyt Trygr B Wrql



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

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







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



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



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





https://linuxhint.com/oracle-create-trigger

יצירת טריגר לבדיקה

לפני שנדון בשיטות של השבתת טריגר, הבה נגדיר טריגר לדוגמה למטרות הדגמה.



פתק : סעיף זה אינו מכסה כיצד להגדיר או להשתמש בטריגרים של מסד הנתונים.

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

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

סכימת הטבלה היא כדלקמן:

צור טבלה sample_data_logs(
מספר תעודת זהות,
first_name varchar2(50),
ip_address varchar2(20),
btc_address varchar2(50),
כרטיס אשראי varchar2(50),
מזהה varchar2(40),
delete_date date,
deleted_by varchar2(20)
);

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

ליצור או להחליף טריגר log_user
לאחר המחיקה
על sample_data
עבור כל שורה
לְהַכרִיז
action_username varchar2(20);
התחל
בחר משתמש לתוך action_username מתוך dual;
הכנס לתוך sample_data_logs
ערכים (:OLD.id,
:OLD.first_name,
:OLD.ip_address,
:OLD.btc_address,
:OLD.credit_card,
:OLD.identifier,
סיסטייט,
action_username);
סוֹף;

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

מחק מ- sample_data שבו id = 1;

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

בחר * מתוך sample_data_logs;

תְפוּקָה:

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

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

השבת טריגר באמצעות PL/SQL

השיטה הראשונה והפשוטה ביותר להשבית טריגר היא שימוש במשפט SQL. למרבה המזל, אורקל מספקת לנו הצהרת ALTER TRIGGER שהתחביר שלה מסופק באופן הבא:

ALTER TRIGGER trigger_name DISABLE;

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

לשנות טריגר log_user disable;

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

מחק מ- sample_data שבו id = 2;

בדוק את היומנים:

בחר * מתוך sample_data_logs;

תְפוּקָה:

כפי שאנו יכולים לראות, עדיין יש לנו רק שיא אחד.

השבת טריגר באמצעות SQL Developer

אנו יכולים להשתמש בכלי השירות SQL Developer כדי להשבית טריגר בממשק הגרפי. התחל בכניסה למפתח SQL.

נווט אל הקטע 'טריגרים':

הרחב את ספריית הטריגרים ואתר את הטריגר שברצונך להשבית. לחץ לחיצה ימנית על שם הטריגר ובחר 'השבת'.

אשר את פעולת 'השבת' ולחץ על 'החל'.

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

סיכום

מאמר זה בחן כיצד להשבית טריגר של Oracle באמצעות הצהרות PL/SQL וכלי השירות SQL Developer.