
Delete From. ההרצאה מראה למה חייבים לציין איזו רשומה למחוק, מתי המחיקה נכשלת בגלל קשר בין טבלאות, ומה קורה למספור האוטומטי אחרי מחיקה.Delete From Products. אם משאירים אותה כך, המערכת תנסה למחוק את כל הרשומות, ולכן לא מומלץ.Where ProductID = 3, כדי למחוק מוצר ספציפי.הטקסט המלא של הדקות הראשונות בהרצאה «מחיקת רשומות קיימות ב-SQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר הבא שאנחנו רוצים לראות זה מחיקת רשומות. מחיקת רשומה מתבצעת על ידי פקודת delete from שם טבלה, products בואו נניח.
אם אני אשאיר את הפקודה as is, המערכת תנסה למחוק את כל הרשומות, לא מומלץ בכלל. אנחנו צריכים לתאר אילו רשומות אנחנו רוצים למחוק.
רשומה לרוב אנחנו מוחקים על ידי המפתח הראשי שלה, where product ID שווה למישהו מסוים וספציפי. בואו נניח שאנחנו רוצים להיפטר מאותו מוצר amazing anisid syrup הזה ה-ID שלו זה 3.
המערכת תנסה למחוק ספציפית את המוצר הזה. בואו נריץ ונקבל שגיאה. בואו נבין רגע מה השגיאה אומרת. The delete statement conflicted with reference constraint FK. FK זה Foreign Key.
זאת אומרת שיש איזשהו קישור בין טבלת המוצרים רואים את זה כאן לבין טבלה אחרת בשם order details שנמצאת פה וכנראה שיש שם את המוצר הזה.
אז אמרנו אם אנחנו מבצעים מחיקה ויש relation שלא מאפשר לנו למחוק הנה קיבלנו שגיאה הכל בסדר אנחנו לא היינו אמורים למחוק את המוצר הזה אם יש לו בוא נגיד הזמנות.
אז זאת נקודה מאוד חשובה מאוד מעניינת אתם לא לא יכולים סתם כך למחוק דברים אם הם באים בקונפליקט עם איזשהו ריליישן בין הטבלאות והריליישן לא מאפשר למחוק.
יכול להיות שהריליישן כן יאפשר ריליישן אחר הריליישן הזה לא מאפשר למחוק דיברנו על זה כשלמדנו על ריליישן לכן אנחנו רוצים להוסיף מוצר חדש שימו לב ניקיתי מקודם את הדאטה בית שוב בואו נוסיף כרגע בננה נגדיר one box סתם אני זורק פה והיא עולה unit פרייס 5.6, גו, נרפרש טיפה, יש לנו מוצר 78 ואין לו הזמנות.
אני כרגע הוספתי אותו, ברור שאין לו הזמנות. בואו ננסה למחוק אותו, 78. בום, עף מהדאטאבייס, one row affected. בואו נחזור, זה שאתם רואים אותו פה זה בגלל שעדיין לא רפרשנו, קונטרול R, בואו נגלול פה למטה, אין לנו את הבננה.
אם אנחנו, דרך אגב, בלי קשר למחיקה, הולכים ומוסיפים עכשיו לדוגמה תפוס אורנג' ואומרים לו שהוא עולה 10 ונרפרש, האם יינתן לנו ID 78? תשובה בהחלט לא, 79. אם מחקתם איזשהו פריט, אף אחד לא ייקח את ה-ID שלו למקום אחר, וזה מאוד הגיוני.
אף אחד לא ייתן שוב פעם את ה-ID שנמחק. למה? יכול להיות שה-ID הזה