VIEW (نمای) SQL
Auto-increment میتواند یک شماره منحصر به فرد تولید کند هنگامی که یک رکورد جدید به جدول اضافه میشود.
فیلد AUTO INCREMENT
معمولاً ما میخواهیم در هر بار که رکورد جدیدی اضافه میشود، مقدار ستون کلید اصلی به صورت خودکار ایجاد شود.
میتوانیم یک فیلد auto-increment در جدول ایجاد کنیم.
قوانین دستوری برای MySQL
در زبان SQL، دستور زیر ستون "P_Id" جدول "Persons" را به عنوان کلید اصلی auto-increment تعریف میکند:
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 1 است و هر رکورد جدید با 1 افزایش مییابد.
برای اینکه序列 AUTO_INCREMENT از مقدار دیگری شروع شود، از زبان SQL زیر استفاده کنید:
ALTER TABLE Persons AUTO_INCREMENT=100
برای اضافه کردن یک رکورد جدید به جدول "Persons"، لازم نیست مقادیر ستون "P_Id" را تعیین کنیم (مقدار منحصر به فرد به صورت خودکار اضافه میشود):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
درخواست SQL بالا یک رکورد جدید را در جدول "Persons" وارد میکند. "P_Id" یک مقدار منحصر به فرد دریافت میکند. "FirstName" به "Bill" تنظیم میشود و ستون "LastName" به "Gates" تنظیم میشود.
قوانین دستوری برای SQL Server
در زبان SQL، دستور زیر ستون "P_Id" جدول "Persons" را به عنوان کلید اصلی auto-increment تعریف میکند:
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 از کلید IDENTITY برای انجام وظایف auto-increment استفاده میکند.
به صورت پیشفرض، مقدار شروع IDENTITY 1 است و هر رکورد جدید با 1 افزایش مییابد.
برای تعیین اینکه ستون "P_Id" از 20 شروع شود و با 10 افزایش یابد، identity را به IDENTITY(20,10) تغییر دهید:
برای اضافه کردن یک رکورد جدید به جدول "Persons"، لازم نیست مقادیر ستون "P_Id" را تعیین کنیم (مقدار منحصر به فرد به صورت خودکار اضافه میشود):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
درخواست SQL بالا یک رکورد جدید را در جدول "Persons" وارد میکند. "P_Id" یک مقدار منحصر به فرد دریافت میکند. "FirstName" به "Bill" تنظیم میشود و ستون "LastName" به "Gates" تنظیم میشود.
قوانین دستوری برای Access
در زبان SQL، دستور زیر ستون "P_Id" جدول "Persons" را به عنوان کلید اصلی auto-increment تعریف میکند:
CREATE TABLE Persons ( P_Id int PRIMARY KEY AUTOINCREMENT, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
MS Access از کلید AUTOINCREMENT برای انجام وظایف auto-increment استفاده میکند.
به صورت پیشفرض، مقدار شروع AUTOINCREMENT 1 است و هر رکورد جدید با 1 افزایش مییابد.
برای تعیین اینکه ستون "P_Id" از 20 شروع شود و با 10 افزایش یابد، autoincrement را به AUTOINCREMENT(20,10) تغییر دهید:
برای اضافه کردن یک رکورد جدید به جدول "Persons"، لازم نیست مقادیر ستون "P_Id" را تعیین کنیم (مقدار منحصر به فرد به صورت خودکار اضافه میشود):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
درخواست SQL بالا یک رکورد جدید را در جدول "Persons" وارد میکند. "P_Id" یک مقدار منحصر به فرد دریافت میکند. "FirstName" به "Bill" تنظیم میشود و ستون "LastName" به "Gates" تنظیم میشود.
نحوه استفاده از گرامر برای Oracle
در Oracle، کد کمی پیچیدهتر است.
شما باید از sequence برای ایجاد فیلدهای خودکار افزایش (این شیء یک توالی از اعداد تولید میکند) استفاده کنید.
لطفاً از دستور CREATE SEQUENCE زیر استفاده کنید:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
کد بالا یک شیء توالی به نام seq_person ایجاد میکند که از 1 شروع میشود و با 1 افزایش مییابد. این شیء 10 مقدار را ذخیره میکند تا عملکرد بهبود یابد. گزینه CACHE تعیین میکند که چندین مقدار توالی برای افزایش سرعت دسترسی ذخیره شوند.
برای وارد کردن رکورد جدید به جدول "Persons"، باید از توابع nextval استفاده کنیم (این توابع شماره بعدی را از توالی seq_person میگیرند):
INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')
درخواست SQL بالا یک رکورد جدید را در جدول "Persons" وارد میکند. مقدار "P_Id" از شماره بعدی در توالی seq_person گرفته میشود. "FirstName" به "Bill" تنظیم میشود و ستون "LastName" به "Gates" تنظیم میشود.