MySQL FOREIGN KEY


ULASHISH

MySQL FOREIGN KEY cheklovi

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

FOREIGN KEY - jadvaldagi ustun bo‘lib, u boshqa jadvaldagi ASOSIY KALITga ishora qiladi.

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 yaroqsiz ma’lumotlarni tashqi kalit ustuniga (bola jadvaldagi) kiritishni oldini oladi, chunki qiymat asosiy jadvalda mavjud bo‘lishi kerak.

FOREIGN KEY cheklovi, shuningdek, agar do‘st jadvalda tegishli qatorlar mavjud bo‘lsa, ota-jadvaldagi yozuvni o‘chirishga to‘sqinlik qiladi.

Bizda ikkita jadval bor deb taxmin qiling:

Shaxslar 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 ASOSIY KOLOT hisoblanadi.

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



JADVAL TUZISHDA XORIY KALIT

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

ALTER TABLE BO‘YICHA XORIY KALIT

"Orders" jadvali yaratilgandan keyin "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 tashlang

FOREIGN KEY cheklovini olib tashlash uchun quyidagi SQL dan foydalaning:

ALTER TABLE Orders
DROP FOREIGN KEY fk_Person;


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!