एसक्यूएल FOREIGN KEY कन्स्ट्रेंशन
- पिछला पृष्ठ SQL प्राथमिक कुंजी
- अगला पृष्ठ SQL Check
एसक्यूएल FOREIGN KEY कन्स्ट्रेंशन
एक तालिका में FOREIGN KEY दूसरी तालिका में PRIMARY KEY की ओर इंगित है。
हम विदेशी कुंजी को समझाने के लिए एक उदाहरण दें। नीचे की दो तालिकाओं को देखें:
"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" तालिका में PRIMARY KEY है。
"Orders" तालिका में "Id_P" स्तम्भ "Orders" तालिका में FOREIGN KEY है。
FOREIGN KEY Constraint तालिकाओं के बीच कनेक्शन को नष्ट करने की कार्रवाई से रोकने के लिए प्रयोग किया जाता है。
FOREIGN KEY Constraint विदेशी कुंजी स्तम्भ में अवैध डाटा प्रविष्टि को रोक सकता है क्योंकि यह उस तालिका में एक बार्ता होनी चाहिए जिसे यह संदर्भित करता है。
CREATE TABLE पर FOREIGN KEY Constraint
नीचे वाक्य "Orders" तालिका के समय "Id_P" स्तम्भ पर FOREIGN KEY बनाने के लिए है:
MySQL:
CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), विदेशी कुंजी (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 Check