שדה עם זהות

Firebird 3 הולך להכיל סוג שדה חדש. טוב זה למעשה לא סוג שדה, אלא יותר סוכר סנטטי. בעיקרון הוא מספק לנו שדה שהוא מקודם בצורה אוטומטית (auto increment) רק למספרים שלמים ויש עם זה גם כמה הגבלות.

למה אני אומר שזה סוכר סינטטי ? ובכן תמיד אפשר היה לעשות מקדם אוטומטי, רק מקודם היה לך יותר כוח לקבוע איך הוא יקודם, והרבה אנשים שרגילים לקיצורי דרך החליטו לבקש את הפיטצ'ר הזה אז הוסיפו. זה לא במקום השיטה המקורית אלא בנוסף. אישית ד"א אני חושב שזה דווקא אחד מהפיטצ'רים הפחות חשובים לFirebird עצמו.

הוא עדיין משתמש ב sequence שנוצר אוטומטי עבור הבקשה (בניגוד למסד נתונים שכולנו מכירים ולא אוהבים).

אז איך זה נראה ? התחביר היבש הוא כזה:

<column definition> ::= <name> <type> GENERATED BY DEFAULT AS IDENTITY <constraints>

בפועל, התחביר יראה בצורה הבאה:

create table objects (
  id integer generated by default as identity primary key,
  name varchar(15)
);

insert into objects (name) values ('Table');
insert into objects (name) values ('Book');
insert into objects (id, name) values (10, 'Computer');

select * from objects;
          ID NAME
============ ===============
           1 Table
           2 Book
          10 Computer

וההגבלות הן מאוד פשוטות: צריך מספר שיכול להתחיל ב0, כלומר:

smallint, integer, bigint, numeric(x, 0) , decimal(x, 0)

בנוסף, השדה לא יכול להיות שדה מחושב (COMPUTED), היות ואי אפשר להשתמש במידע של שדות אחרים, וכן לא ניתן לתת לו ערך ברירת מחדל.

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

לעוד פרטים, אתם יכולים לראות את התעוד, ואת דיווח הבאג (בקשה לתוספת) בנושא.

4 מחשבות על “שדה עם זהות

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s