SQL FOREIGN KEY সীমানা

SQL FOREIGN KEY সীমানা

একটি টেবিলের FOREIGN KEY আরেকটি টেবিলের PRIMARY KEY-কে প্রদির্শন করে。

আমরা একটি উদাহরণ দিয়ে FOREIGN 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

নিচের SQL "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)
)

If you need to name the FOREIGN KEY constraint and define FOREIGN KEY constraints for multiple columns, please use the following SQL syntax:

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)
)

SQL FOREIGN KEY Constraint on ALTER TABLE

If you create a FOREIGN KEY constraint for the 'Id_P' column when the 'Orders' table already exists, please use the following SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

If you need to name the FOREIGN KEY constraint and define FOREIGN KEY constraints for multiple columns, please use the following SQL syntax:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

Revoke FOREIGN KEY Constraint

To revoke the FOREIGN KEY constraint, please use the following SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders