سبد (0)

افزایش خودکار یک فیلد در SQL

Auto-increment یا افزایش خودکار، اجازه می دهد که یک شماره منحصر به فرد، برای سطر جدیدی که درجدول وارد می شود، تولید شود.


AUTO INCREMENT (افزایش خودکار یک فیلد)

Wiki

خیلی اوقات می خواهیم زمانی که رکورد جدیدی وارد می شود، مقدار فیلد primary key (کلید اصلی) به طور خودکار ایجاد شود.

در این صورت از فیلد auto-increment در جدول استفاده می کنیم.


فرم دستور در MySQL

دستور زیر تعیین می کند که ستون P_Id در جدول Persons کلید اصلی با حالت افزایش خودکار باشد.

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

MySQL از کلید واژه AUTO_INCREMENT برای اعمال حالت افزایش خودکار استفاده می کند.

به طور پیش فرض، مقدار شروع برای AUTO_INCREMENT عدد یک می باشد و مقدار آن برای رکورد جدید، یک عدد افزایش می یابد.

برای اینکه مقدار شروع AUTO_INCREMENT را مقداری غیر از یک تعیین کنیم از دستور زیر استفاده می کنیم:

ALTER TABLE Persons AUTO_INCREMENT=100

برای وارد کردن یک رکورد جدید در جدول Persons دیگر نباید مقداری برای ستون P_Id تعیین کنیم (مقداری منحصر به فرد، به صورت خودکار در این فیلد وارد می شود)

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

دستور بالا سطر جدیدی را در جدول Persons وارد می کند. برای ستون P_Id یک مقدار منحصر به فرد تعیین می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.


فرم دستور در SQL Server

Wiki

دستور زیر تعیین می کند که ستون P_Id در جدول Persons کلید اصلی با حالت افزایش خودکار باشد.

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL Server از کلید واژه IDENTITY برای اعمال حالت افزایش خودکار استفاده می کند.

به طور پیش فرض، مقدار شروع برای IDENTITY عدد یک می باشد و مقدار آن برای رکورد جدید، یک عدد افزایش می یابد.

برای اینکه تعیین کنیم که ستون P_Id با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد IDENTITY به ( IDENTITY(10,5 تغییر می یابد.

برای اینکه سطر جدیدی را در جدول Persons وارد کنیم، دیگر نیازی نیست مقداری برای ستون P_Id وارد کنیم. (مقداری منحصر به فرد، به طور خودکار در این ستون وارد می شود)

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

دستور بالا سطر جدیدی را در جدول Persons وارد می کند. به ستون P_Id یک مقدار منحصر به فرد داده می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.


فرم دستور در Access 

Wiki

دستور زیر تعیین می کند که ستون P_Id در جدول Persons کلید اصلی با حالت افزایش خودکار باشد.

CREATE TABLE Persons
(
P_Id PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access از کلید واژه AUTOINCREMENT برای اعمال حالت افزایش خودکار استفاده می کند.

به طور پیش فرض، مقدار شروع برای AUTOINCREMENT عدد یک می باشد و مقدار آن برای رکورد جدید، یک عدد افزایش می یابد.

برای اینکه تعیین کنیم که ستون P_Id با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد AUTOINCREMENT به ( AUTOINCREMENT(10,5 تغییر می یابد.

برای اینکه سطر جدیدی را در جدول Persons وارد کنیم، دیگر نیازی نیست مقداری برای ستون P_Id وارد کنیم. (مقدار منحصر به فردی به طور خودکار در این ستون وارد می شود)

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

دستور بالا سطر جدیدی را در جدول Persons وارد می کند. به ستون P_Id یک مقدار منحصر به فرد داده می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.


فرم دستور در Oracle

Wiki

در Oracle کار کمی پیچیده تر است.

 شما باید فیلد auto-increment را با یک شیء sequence ایجاد کنید. (این شیء، یک توالی از اعداد را تولید می کند)

برای تولید اعداد متوالی، از دستور CREATE SEQUENCE که در زیر آمده استفاده کنید. 

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

دستور بالا یک شی sequence با نام seq_person ایجاد می کند، که با عدد یک شروع و یک عدد یک عدد افزایش می یابد. همچنین برای کارآیی و سرعت دسترسی بیشتر تا 10 مقدار در حافظه نگهداشته می شود (Cache).

برای درج یک رکورد جدید در جدوف "Persons"، باید از تابع nextval استفاده کنیم. (این تابع، مقدار بعدی sequence تعریف شده در بالا را برمی گرداند)

INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

دستور بالا سطر جدیدی را در جدول Persons وارد می کند. به ستون P_Id یک مقدار منحصر به فرد داده می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.

آموزش صوتی SQL

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه