טיפה נגד חתוך

Drop and Truncate הן שתי הצהרות SQL (Structured Query Language) המשמשות במערכות לניהול מסדי נתונים, בהן אנו רוצים להסיר רשומות נתונים ממסד נתונים. שתי הצהרות השחרור והקיצוץ מסירות את כל הנתונים בטבלה ואת הצהרת ה- SQL הקשורה לה. פעולת המחיקה אינה יעילה במקרה זה מכיוון שהיא משתמשת בשטחי אחסון רבים יותר מ- Drop and Truncate.

במקרה, אם ברצוננו למחוק טבלה במסד נתונים לחלוטין עם כל הנתונים שלה, SQL מאפשרת לנו לבצע זאת בקלות באמצעות הצהרת Drop. פקודת ירידה היא פקודת DDL (שפת הגדרת נתונים), וניתן להשתמש בה כדי להרוס בסיס נתונים, טבלה, אינדקס או תצוגה קיימים. זה מוחק את כל המידע בטבלה, כמו גם את מבנה הטבלה מהמאגר. כמו כן, אנו עשויים לרצות להיפטר מכל הנתונים בטבלה בפשטות, אך ללא הטבלה ונוכל להשתמש בהצהרת Truncate ב- SQL בתרחיש כזה. Truncate היא גם פקודת DDL והיא מבטלת את כל השורות בטבלה אך שומרת על הגדרת הטבלה זהה לשימוש עתידי.

שחרר את הפקודה

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

טפטף שולחן

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

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

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

הפסק את הפקודה

הפקודה Truntate היא פקודת DDL והיא מסירה את כל השורות בטבלה ללא תנאים שצוינו על ידי משתמש כלשהו, ​​ומשחררת את המרחב שמשמש את הטבלה, אך מבנה הטבלה עם העמודות, האינדקסים והאילוצים שלו נשארים זהים. חתוך מבטל נתונים מטבלה על-ידי חלוקת הדפים של נתונים המשמשים לאחסון נתוני הטבלה, ורק מיקומי העמודים הללו נשמרים ביומן העסקאות. כך שהוא מנצל פחות משאבי יומן עסקות ומשאבי מערכת בהשוואה לפקודות SQL קשורות אחרות כמו מחק. אז Truncate היא הצהרה מהירה יותר מאחרות. להלן התחביר האופייני לפקודה Truncate.

לוח הפעלה

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

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

מה ההבדל בין טיפה לקציצה?

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

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

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

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