ההבדל בין טיפה לקצץ

Anonim

ירידה לעומת לחתוך

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

-> ->

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

- <->

פקודת שחרור

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

-> <->

DROP TABLE

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

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

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

פקודה קטועה

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

TRUNCATE TABLE

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

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

מה ההבדל בין זרוק לקיצוץ?

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

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

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

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