חידה: מה עושה הקוד הבא ?

יצרתי את הקוד הבא במסד נתונים שלי שעובד עם Firebird SQL, מה הקוד עושה ? למה נבחרה הגישה הזו בשביל לממש את הקוד ואילו תשובות אקבל בהזנת 10 ערכים ראשונים למסד הנתונים עם הקוד הזה ?

IF ((NEW.ID IS NULL) OR (NEW.ID = 0)) THEN
NEW.ID = GEN_ID(GEN_PERMISSIONS_ID, 1);
ELSE
NEW.ID = GEN_ID(GEN_PERMISSIONS_ID, GEN_ID(GEN_PERMISSIONS_ID, 0));

במידה ולא תפתרו את החידה כאן, אענה עליה בשבוע הבא :)

תחת הקטגוריות firebird, קוד פתוח. 3 תגובות »

תגובות 3 לרשומה: "חידה: מה עושה הקוד הבא ?"‏

  1. Boris Shtrasman אומר/ת:

    הממ …

    אם לא הכנסת את הערך ID אז הוא מעלה בקפיצה אחת את ה ID הקודם.
    אחרת קפוץ GEN_PERMISSIONS מהערך הקודם.

    תור פיבונאצי ?

  2. תשובה לחידה « לראות שונה אומר/ת:

    [...] 8 נובמבר, 2009 — ik_5 לפני שבוע הצגתי חידה, ועכשיו אספק לה תשובה (שרוב האנשים כבר יודעים [...]

  3. lawrence אומר/ת:

    numbered generated : 2^n numbers :
    1
    2
    4
    8
    16
    32


כתיבת תגובה