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 می آید.
من یه کلید خارجی تشکیل دادم
توی جدول اول id رو Auto-increment گذاشتم ولی توی جدول دوم که میخوام id رو Auto-increment بزارم ارور میده . علتش چیه
کلید خارجی در جدول باید زیر مجموعه کلید اصلی در جدول اصلی باشد. دقت داشته باشید که باید زیر مجموعه ای از آن و نه مشابه آن باشد. شما با انجام این کار این قانون را نقض می کنید.به عبارتی با قرار دادن کلید خارجی و کلید اصلی هر دو در حالت AUTO_INCREMENT هر دو فیلد را یکسان در نظر گرفته اید. برای اطلاع بیشتر در این زمینه به "آموزش SQL-کلید خارجی" از طریق لینک زیر مراجعه کنید :
www.beyamooz.com/sql/101-advanced/277-%D9%85%D8%AD%D8%AF%D9%88%D8%AF%DB%8C%D8%AA-foreign-key-%D8%AF%D8%B1-sql