एसक्यूएल FOREIGN KEY कन्स्ट्रेंशन

एसक्यूएल 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