![]() |
[SQL]בעיה עם AUTO INCREMENT
יש לי בעיה ב-MYSQL עם שדה שמכיל AUTO INCREMENT ז"א שהוא אמור להתעדכן לבד כל פעם הבעיה היא שהוא לא חוזר אחורה למשל הוספתי 10 שורות עכשיו השדה יכיל את המספר 10 ואם אני ימחק הכל ועוד פעם מחדש וכניס 10 שדות אז כבר השדה הראשון יכיל 11 והאחרון יכיל 21 פעם הפתרון שלי היה לעשות דרך PHP פונקצייה שמוציא אתה המספר האחרון בשדה מסויים אבל עכשיו אני בונה מערכת די גדולה ואני רוצה לחסוך כמה שיותר במשאבים וכ"ו וראיתי שבכל המערכות כמאט יש פשוט במסד זה לבד מתעדכן אז מה דעתכם להישאר עם הפונקצייה או שיש פתרון פשוט לבעיה שלי?
|
תעדכן ידנית
תוציא את הערך האחרון, תוסיף אחד ותכניס הAUTO INCREMENT זה רק מוסיף וממשיך את הספירה מהמקום האחרון |
ככה זה עובד, וככה כל המערכות שעובדות עם MYSQL עובדות.
אין סיבה שזה יפריע, יש לך מספיק id ים. |
הרעיון בID הוא שהוא יחודי, ברגע שאתה חוזר על מספרים, אפילו אם מחקת אותם, הם כבר לא יחודיים..
מה זה משנה לך אם אתה חוזר על מספרים ישנים? |
OK עכשיו הבנתי למה בכל המערכות זה ככה וזה כאילו לא חוזר אחורה חח תודה לא חשבתי אפילו שה-ID צריך להיות משהוא מיוחד כאילו שלא יחזור על עצמו ואם נגיד יש לי מערכת שכל פעם צריך למחוק ממנה 1000 שורות :S טוב הבנתי תראיון אם צריך אז אני ישתמש בפונקצייה וככה אם לא צריך אז פשוט כל ID היהי מיוחד תודה אפשר לנעול
|
זאת הסיבה ד"א שAUTO_INCREMENT חייב להיות Primary Key מה שאומר שהוא UNIQUE :)
|
בשביל זה קיימת הפונקציה TRUNCATE, זה ימחק את כללל השורות ויתחיל את ספירת הID מחדש
ככה משתמשים: PHP קוד:
|
תודה דור וכמו שאמרתי כבר אפשר לנעול את הנושא :-/ השגתי פה תשובות לשאלה שלי וגם לדברים שאפיו לא שאלתי :) תודה חברה
|
כל הזמנים הם GMT +2. הזמן כעת הוא 08:31. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ