افزایش خودکار یک فیلد در SQL
Auto-increment یا افزایش خودکار، اجازه می دهد که یک شماره منحصر به فرد، برای سطر جدیدی که درجدول وارد می شود، تولید شود.
AUTO INCREMENT (افزایش خودکار یک فیلد)
خیلی اوقات می خواهیم زمانی که رکورد جدیدی وارد می شود، مقدار فیلد primary key (کلید اصلی) به طور خودکار ایجاد شود.
در این صورت از فیلد auto-increment در جدول استفاده می کنیم.
فرم دستور در MySQL
دستور زیر تعیین می کند که ستون P_Id در جدول 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 را مقداری غیر از یک تعیین کنیم از دستور زیر استفاده می کنیم:
برای وارد کردن یک رکورد جدید در جدول Persons دیگر نباید مقداری برای ستون P_Id تعیین کنیم (مقداری منحصر به فرد، به صورت خودکار در این فیلد وارد می شود)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول Persons وارد می کند. برای ستون P_Id یک مقدار منحصر به فرد تعیین می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.
فرم دستور در SQL Server
دستور زیر تعیین می کند که ستون P_Id در جدول 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 وارد کنیم. (مقداری منحصر به فرد، به طور خودکار در این ستون وارد می شود)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول Persons وارد می کند. به ستون P_Id یک مقدار منحصر به فرد داده می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.
فرم دستور در Access
دستور زیر تعیین می کند که ستون P_Id در جدول 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 وارد کنیم. (مقدار منحصر به فردی به طور خودکار در این ستون وارد می شود)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول Persons وارد می کند. به ستون P_Id یک مقدار منحصر به فرد داده می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.
فرم دستور در Oracle
در Oracle کار کمی پیچیده تر است.
شما باید فیلد auto-increment را با یک شیء sequence ایجاد کنید. (این شیء، یک توالی از اعداد را تولید می کند)
برای تولید اعداد متوالی، از دستور CREATE SEQUENCE که در زیر آمده استفاده کنید.
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
دستور بالا یک شی sequence با نام seq_person ایجاد می کند، که با عدد یک شروع و یک عدد یک عدد افزایش می یابد. همچنین برای کارآیی و سرعت دسترسی بیشتر تا 10 مقدار در حافظه نگهداشته می شود (Cache).
برای درج یک رکورد جدید در جدوف "Persons"، باید از تابع nextval استفاده کنیم. (این تابع، مقدار بعدی sequence تعریف شده در بالا را برمی گرداند)
VALUES (seq_person.nextval,'Lars','Monsen')
دستور بالا سطر جدیدی را در جدول Persons وارد می کند. به ستون P_Id یک مقدار منحصر به فرد داده می شود. در ستون FirstName مقدار Lars و در ستون LastName مقدار Monsen می آید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 38576
دیدگاهها
با سلام چگونه می توان ویژگی افزایش خودکار را به یک ستون که از قبل موجود می باشد اضاقه نمود با اینکه کلید اصلی بوده و در جدول دیگر کلید خارجی می باشد.
سلام، در زیر بصورت ویژوال نحوه فعال کردن auto-increment در SQL Server توضیح داده می شود:
1- در SQL Server جدول مورد نظرتان را در حالت Design قرار دهید.
2- فیلدی که می خواهید قابلیت auto-increment را برای آن فعال کنید انتخاب کنید.
3- از پایین صفحه یعنی پلن Column Properties روی فلش Identity Specification را باز نمایید.
4- ویژگی ( Is Identity) را با مقدار Yes تنظیم نمایید.
در phpmyadmin لطقا بفرمایید در اینجا وقتی افزایش خودکار را فعال می کنم ارور میدهد .
ممنونم مهندس جان