SQL - محدودیت FOREIGN KEY
تاریخ ارسال: ۳-مهر-۱۳۸۹
محدودیت foreign key در یک جدول به کلید اصلی یک جدول دیگر یا همان primary key در یک جدول دیگر اشاره دارد .
بیاید برای درک بهتر به مثال زیر دیقت کنیم:
جدول "person"
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
جدول "order"
| O_Id | OrderNo | P_Id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 2 |
| 4 | 24562 | 1 |
دقت کنید که عنصر P_Id درجدول order به عنصر همنام خود یعنی P_Id در جدول person اشره دارد و حاوی همان اطلاعات میباشد P_Id در order یک foreign key و در person یک |primary key میباشد.
foreign key در واقع از وارد شدن اطلاعات نا معتبر در جدول و همچنین هرچیز که ارتباط بین دو جدول را تخریب کند جلوگیری میکند زیرا که به مقدار یکتایی در جدول اصلی اشاره دارد.
ایجاد foreign key هنگام ساخت جدول
برای انجام عمل فوق از دستور زیر استفاده میکنیم
MySQL:
CREATE TABLE Orders |
SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( O_Id int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
و برای محدود کردن چند ستون در جدول به عنوان foreign key از دستور زیر استفاده کنید
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders
( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, PRIMARY KEY (O_Id), CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) )
برای ساخت یک foreign key در جدولی که قبلا ساخته شده است باید از دستور زیر استفاده کرد.
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
و همچنین برای ساخت چند ستون به عنوان یک foreign key از دستور زیر استفاده کنید
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
و برای حذف یک foreign key از دستورات زیر بهره بگیرید
MySQL:
ALTER TABLE Orders |
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders
مترجم: علیرضا مسگری
ادامه » SQL - محدودیت CHECK
بازگشت « SQL - محدودیت PRIMARY KEY
۱۱-دي-۱۳۹۰
ایجاد پکیج های SSIS با SQL Server Management Studio
۲۹-آذر-۱۳۹۰
آموزش SSIS - SQL Server Integration Services - مقدمه
۱۵-آذر-۱۳۹۰
مرجع dataType ها
۷-آبان-۱۳۸۹
SQL - عبارت ALTER TABLE
۷-آبان-۱۳۸۹
SQL - دستور drop
۵-آبان-۱۳۸۹
SQL - ساختن INDEX
۴-مهر-۱۳۸۹
SQL - محدودیت DEFAULT
۴-مهر-۱۳۸۹
- نام:
- ایمیل:
- نظر:
