הקמת טבלה בMYSQL

הקמת טבלה בMYSQL

אני מקים טבלה בעזרת אחד מכלי הניהול הקיימים בשוק, וכשאני עושה EXPORT להגדרת הטבלה, אני מקבל SQL שחלק ממנו מובא להלן:
PRIMARY KEY (`GroupID`), UNIQUE KEY `GroupID` (`GroupID`), KEY `GroupID_2` (`GroupID`)​
האם יש כאן הגדרות כפולות (אני מצפה למפתח יחיד וINDEX יחיד) ? תודה מראש, שמוליק
 

סאביבית

New member
קצת סדר :

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

shanor

New member
כהמשך לסאביבית,

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

השורה הנ"ל
PRIMARY KEY (`GroupID`),​
מספיקה (אין צורך בשאר השורות) ותגדיר את השדה הנ"ל כ: INDEX, NOTNULL, UNIQE תודה, שמוליק
 

shanor

New member
ברמת העיקרון וברמת התכלס

ברמת העיקרון כן השורה הזו מספיקה, כי היא כוללת את ההגדרה הרצויה של השורה, אבל זו רמת העיקרון, וברמת הת´כלס, תמיד, (99% מהמקרים) המפתח הראשי הוא גם האינדקס (כי אחרת אתה מתחיל לנפח את קובץ הטבלאות שלך וחבל), המפתח הראשי, לא יכול להיות NULL, הוא חייב להכיל ערך כל שהוא, שהרי אם הוא יהיה NULL אז אין לו ערך, ואז הוא לא יוכל ללהוות מפתח. בנוסף המפתח הראשי הוא צריך להיות ייחודי, שהרי אם יש יותר מאחד כזה אז על פי מה יתבצעו כל הסידורים של המפתח? בגדול, כן צריך את ההגדרות הללו. בברכה שנאור.
 
למעלה