לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #13  
ישן 15-04-2011, 12:10
  משתמש זכר dorM dorM אינו מחובר  
מנהל
 
חבר מתאריך: 26.07.08
הודעות: 6,473
בתגובה להודעה מספר 11 שנכתבה על ידי niv123456 שמתחילה ב "אם כך, אני עדיין לא פותר את..."

גרימת האי-סדר יכול להיגרם במקרה בו שתי לקוחות מריצים את הקוד הבא שאינו חלק מ-transaction אחד (או פשוט במנוע שאינו transactional כמו MyISAM):

קוד:
#1: INSERT tbl_a (auto_increment_culumn_A, ...) VALUES(NULL, ...) #2: SET @AUTO_INC_VAL := (SELECT MAX(auto_increment_culumn_A) FROM tbl_a); #3: INSERT tbl_b (col_B, ...) VALUES(@AUTO_INC_VAL, ...)

תאר לך שקורה הדבר הבא לפי הסדר:
  1. לקוח א' מריץ את שורה מס' 1
  2. לקוח ב' מריץ את שורה מס' 1
  3. לקוח א' מריץ את שורה מס' 2 ו-3
במצב כזה באמת יכולה להיות בעיה, כי לקוח א' יקבל את ה-id שמתאים ללקוח ב'.

אבל דבר כזה לא יכול לקרות עם LAST_INSERT_ID, פשוט כי ה-id האחרון שנוצר מטור בעל תכונת AUTO_INCREMENT נשמר per connection.
לכן עם LAST_INSERT_ID זה לא משנה כמה לקוחות יריצו את שורה מס' 1 אחרי שהריץ אותה לקוח א', כי הערך טור ה-auto inc האחרון שנוצר נשמר עבור כל לקוח בנפרד.

חפש על "database transactions" ו-ACID

להמשך שאלות שקשורות ל-SQL ומסדי נתונים, נא פתח את האשכול בפורום המתאים...

נערך לאחרונה ע"י dorM בתאריך 15-04-2011 בשעה 12:13.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 08:02

הדף נוצר ב 0.06 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר