افزایش خودکار (Auto Increment)
اینجا درباره «افزایش خودکار (Auto Increment)» حرف می زنیم. یعنی عدد یکتا، خودش تولید می شود. معمولاً این عدد، «کلید اصلی» رکورد است. مثل شماره دانش آموز که به صورت خودکار زیاد می شود.
افزایش خودکار چیست؟
«افزایش خودکار» هنگام درج رکورد جدید، یک عدد یکتا می سازد. بنابراین لازم نیست مقدار شناسه را خودت بدهی. در نتیجه درج ساده تر و امن تر می شود.
MySQL: تعریف و شروع از عدد دلخواه
در MySQL از کلیدواژه AUTO_INCREMENT استفاده می کنیم. ستون Personid کلید اصلی است.
CREATE TABLE Persons
(
Personid int NOT NULL AUTO_INCREMENT;
LastName varchar(255) NOT NULL;
FirstName varchar(255);
Age int;
PRIMARY KEY (Personid);
);
می توان مقدار شروع را عوض کرد. اینجا شمارش از 100 شروع می شود.
ALTER TABLE Persons AUTO_INCREMENT = 100;
درجِ رکورد بدون دادن Personid انجام می شود.
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
SQL Server: استفاده از IDENTITY
در SQL Server از IDENTITY(seed, increment) استفاده می کنیم. اینجا از 1 شروع و هر بار 1 اضافه می شود.
CREATE TABLE Persons
(
Personid int IDENTITY(1, 1) PRIMARY KEY;
LastName varchar(255) NOT NULL;
FirstName varchar(255);
Age int;
);
نمونه درج بدون تعیین Personid:
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
Access: استفاده از AUTOINCREMENT
در Access از AUTOINCREMENT استفاده می کنیم. مقدار از 1 شروع و هر بار 1 اضافه می شود.
CREATE TABLE Persons
(
Personid AUTOINCREMENT PRIMARY KEY;
LastName varchar(255) NOT NULL;
FirstName varchar(255);
Age int;
);
نمونه درج بدون تعیین Personid:
INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');
Oracle: ساخت Sequence و درج با nextval
در Oracle باید «دنباله (Sequence)» بسازی. این شیء، اعداد پشت سرهم می دهد.
CREATE SEQUENCE seq_person
MINVALUE 1;
START WITH 1;
INCREMENT BY 1;
CACHE 10;
برای درج، از مقدارِ بعدیِ دنباله استفاده کن.
INSERT INTO Persons (Personid, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen');
نکته: اگر به دنبال جست وجوی سریع تری هستی، سراغ ایندکس برو. همچنین برای مقداردهی خودکار برخی ستون ها، پیش فرض را ببین.
تمرین گام به گام
- یک جدول Persons با شناسه خودکار بساز.
- دو رکورد بدون Personid درج کن.
- رکوردها را بخوان و افزایش عدد را ببین.
- در MySQL، شروع شمارش را تغییر بده.
جمع بندی سریع
- شناسه یکتا خودکار تولید می شود.
- MySQL از AUTO_INCREMENT استفاده می کند.
- SQL Server از IDENTITY استفاده می کند.
- Access از AUTOINCREMENT بهره می برد.
- Oracle با Sequence و nextval کار می کند.