
Delete From ל-Truncate Table על טבלת Kittens, ומראה מה קורה למספור האוטומטי.Delete From Kittens Where KittenID = 3 מוחקת שורה אחת. צריך קודם לעבור למסד cute kittens. אחרי הוספת חתול חדש (אוסקר), הוא לא מקבל את המזהה 3, כי המערכת לא חוזרת על מפתחות ראשיים שכבר יצרה.Delete From Kittens בלי Where מוחקת את כל הטבלה (שלוש רשומות הושפעו). אבל כשמוסיפים אחר כך רשומה, המזהה שלה הוא 5, כלומר המספור ממשיך מאיפה שעצר.Truncate Table: מוחקת את כל הרשומות, ובנוסף מאפסת את המפתחות. אחרי הוספת ערכים חדשים המזהים מתחילים שוב מ-1, 2.Truncate Table רק כשבאמת רוצים להחזיר את הטבלה למצבה המקורי ולאפס את המפתחות, ולא סתם למחוק שורות.הטקסט המלא של הדקות הראשונות בהרצאה «איפוס טבלאות ב-SQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
קיימת פקודה מאוד מעניינת שמאפשרת לאפס טבלה. יצרנו מקודם טבלת קיטנס ויש לה שלוש שורות. אם אנחנו באים ואומרים אנחנו רוצים להיפטר מאיזושהי שורה או מכל השורות זה יהיה delete from kittens.
אם אני אומר לו where אז הוא מוחק לי שורה ספציפית בוא נגיד where kittenid=3 נריץ האמת קודם כל אנחנו צריכים להגיד לו להתמקד על cute kittens מעולה. אני רואה שהוא אומר לי שביצע את זה בואו נבצע איזשהו קונטרול r ונראה שהשורה נמחקה אבל אם אני אלך ואני אוסיף עכשיו עוד רשומה נניח בוא נוסיף את אוסקר החתול ונראה שהוא לא שם לנו את id3 והאמת שראינו את זה בעבר המערכת
לא חוזרת על מפתחות ראשיים שהיא יצרה מה יקרה אם פשוט נגיד לו תשמע בוא תמחק את כל מה שיש delete from kittens כן, זה בלי לתת לו ID. ונראה שהוא אומר לי שלוש רשומות הושפעו מהפקודה הזאת ואם אנחנו מסתכלים אנחנו רואים שכל הטבלה כולה נמחקה אבל אם אני אוסיף כאן שוב פעם את קיוט מיצי בן 2 אנחנו נראה שהוא נתן לנו 5. בואו נוסיף סתם כמה ערכים ונראה את פקודת הטראנקייט.
פקודת טראנקייט טייבל עושה כמה דברים. דבר ראשון היא אוטומטית מוחקת את כל הרשומות בואו נריץ את זה אנחנו רואים שהוא כתב לנו שזה עובד בואו נבצע קונטרול r ונראה באמת שהוא מחק הכל אבל היא עושה עוד כמה דברים דבר ראשון היא מאפסת מפתחות אם אני עכשיו כאן יוסיף ערכים אז אנחנו נראה שהמפתח מתחיל מ-1 שימו לב 1-2 דבר נוסף כאשר אנחנו מבצעים פקודות של insert update ו-delete
הן נכתבות לכל מיני קבצי לוג. ברגע שאתם עושים טראנקייט, אתם בעצם רוצים לאפס טבלה, המערכת לא כותבת שום דבר לפקודת לוג, זאת אומרת שהפקודה הזאת קצת יותר מהירה.
כמובן שצריך להשתמש בה, רק שאנחנו באמת רוצים לאפס טבלה. לא סתם למחוק את השורות בה, אלא באמת לאפס את המפתחות. אז יש לנו דבר כזה שמחזיר טבלה למצב המקורי