ایس کیو ایل فورین کی کونسٹریکشن
- ਪਿਛਲਾ ਪੰਨਾ SQL ਪ੍ਰਾਈਮਰੀ ਕੀ
- ਅਗਲਾ ਪੰਨਾ SQL ਚੈੱਕ
ایس کیو ایل فورین کی کونسٹریکشن
ایک جدول کا بیرونی کلید دوسرے جدول کا پریماری کلید کی طرف پوائنٹنگ کرتا ہے۔
ایک مثال کی مدد سے بیرونی کلید کا وضاحت کریں. دیکھئے نیچے کئی جدول:
"Persons" جدول:
Id_P | LastName | FirstName | آدرس | شہر |
---|---|---|---|---|
1 | اڈمز | جون | اوسفورڈ سٹریٹ | لندن |
2 | بوش | جورج | پانچ اوریو | نیو یارک |
3 | کارٹر | توماس | چانگ آن جیٹ | بجنگ |
"Orders" جدول:
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
توجہ دے کہ "Orders" میں "Id_P" سلسلہ "Persons" جدول کا "Id_P" سلسلے کی طرف پوائنٹنگ کرتا ہے۔
"Persons" جدول میں "Id_P" سلسلہ "Persons" جدول کا پریماری کلید ہے۔
"Orders" جدول میں "Id_P" سلسلہ "Orders" جدول کا بیرونی کلید ہے۔
بنیادی کلید خارجی کی محدودیت کا استعمال جدولوں کے درمیان کی رابطہ کی تباہی کی روک تھام کے لئے ہوتا ہے۔
بنیادی کلید خارجی کی محدودیت کا استعمال بیرونی کلید سلسلے میں نا معقول اعداد کا داخل کیا جانے سے روکنا ہوتا ہے، کیونکہ یہ وہی جدول کی اکائیوں میں سے ایک ہونا چاہئے جس کا وہ پوائنٹنگ کرتا ہے۔
CREATE TABLE پر SQL FOREIGN KEY Constraint
بنیادی کلید خارجی (Id_P) کا "Orders" جدول کی تعمیر کے دوران قائم کیا گیا ہے:
MySQL:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, Id_P int FOREIGN KEY REFERENCES Persons(Id_P) )
ਜੇਕਰ ਤੁਸੀਂ FOREIGN KEY ਸੰਕਲਪ ਦਾ ਨਾਮ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ਕਈ ਸਿਰਲੇਖਾਂ 'ਤੇ FOREIGN KEY ਸੰਕਲਪ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਗਰੰਟੀ ਵਰਤੋਂ ਕਰੋ:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
ALTER TABLE ਉੱਤੇ SQL FOREIGN KEY Constraint
ਜੇਕਰ "Orders" ਸਿਰਲੇਖ 'ਤੇ "Id_P" ਸਿਰਲੇਖ ਵਾਸਤੇ FOREIGN KEY ਸੰਕਲਪ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਦਖਲ ਵਰਤੋਂ ਕਰੋ:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
ਜੇਕਰ ਤੁਸੀਂ FOREIGN KEY ਸੰਕਲਪ ਦਾ ਨਾਮ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ਕਈ ਸਿਰਲੇਖਾਂ 'ਤੇ FOREIGN KEY ਸੰਕਲਪ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਗਰੰਟੀ ਵਰਤੋਂ ਕਰੋ:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
FOREIGN KEY ਸੰਕਲਪ ਰੱਦ ਕਰੋ
ਜੇਕਰ ਤੁਸੀਂ FOREIGN KEY ਸੰਕਲਪ ਰੱਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਦਖਲ ਵਰਤੋਂ ਕਰੋ:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders
- ਪਿਛਲਾ ਪੰਨਾ SQL ਪ੍ਰਾਈਮਰੀ ਕੀ
- ਅਗਲਾ ਪੰਨਾ SQL ਚੈੱਕ