SQL FOREIGN KEY cheklovi


baham ko'ring

SQL FOREIGN KEY cheklovi

FOREIGN KEY cheklovi ikkita o‘rtasida bog‘lanishni o‘rnatadi jadvallar va ular orasidagi aloqani buzadigan harakatlarning oldini oladi.

FOREIGN KEY - bu jadvaldagi ustun boshqa jadvaldagi PRIMARY KEY.

Xorijiy kalit ustuni bo‘lgan jadval do‘st jadval, asosiy kalit ustuni bo‘lgan jadval esa havola qilingan yoki asosiy jadval deb ataladi.

FOREIGN KEY cheklovi tashqi kalit ustuniga (bola jadvalda) noto‘g‘ri ma’lumotlar kiritilishining oldini oladi, chunki qiymat ota jadvalda mavjud bo‘lishi shart.

FOREIGN KEY cheklovi ham sizni oldini oladi Agar tegishli qatorlar hali ham mavjud bo‘lsa, ota-jadvaldagi yozuvni o‘chirishdan bolalar stoli.

Faraz qilaylik, bizda ikkita jadval bor:

"Persons" jadvali

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23

Orders jadvali

OrderID OrderNumber PersonID
3 22456 2
4 24562 1

Bu yerda "Orders" jadvalidagi "PersonID" ustuni "Persons" jadvalidagi "PersonID" ustuniga ishora qilayotganini ko‘ramiz.

"Shaxslar" jadvalidagi "Shaxs identifikatori" ustuni "Shaxslar" jadvalidagi PRIMARY KEY hisoblanadi.

"Orders" jadvalidagi "PersonID" ustuni "Orders" jadvalidagi FOREIGN KEY hisoblanadi.



FOREIGN KEY on CREATE TABLE

Quyidagi SQL "Orders" jadvalini yaratishda "PersonID" ustunida FOREIGN KEY cheklovini yaratadi:

CREATE TABLE Orders (
    OrderID int PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonID int,
    CONSTRAINT fk_Person
    FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

FOREIGN KEY on ALTER TABLE

"Orders" jadvali yaratilgandan so‘ng "PersonID" ustunida FOREIGN KEY cheklovini yaratish uchun quyidagi SQL dan foydalaning:

ALTER TABLE Orders
ADD CONSTRAINT fk_Person
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);

FOREIGN KEY cheklovini o‘chirish

FOREIGN KEY cheklovini o‘chirish uchun quyidagi SQL’dan foydalaning:

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_Person;

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_Person;



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!