SQL საგარეო გასაღებით შეზღუდვა

«წინა შემდეგი თავი »

SQL საგარეო გასაღებით შეზღუდვა

საგარეო გასაღები ერთ მაგიდასთან ქულა პირველადი გასაღები სხვა მაგიდასთან.

მოდით ვაჩვენოთ უცხოელ გასაღები მაგალითი. ქვემოთ მოყვანილია ორი მაგიდა:

"პირები" ცხრილში:

P_Id LastName გვარი მისამართი ქალაქი
1 ჰანსენი Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

"შეკვეთების" ცხრილში:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

გაითვალისწინეთ, რომ "P_Id" სვეტი "შეკვეთების" ცხრილის ქულა "P_Id" სვეტი "პირები" მაგიდა.

"P_Id" სვეტი "პირები" ცხრილის ძირითად გასაღებს in the "პირები" მაგიდა.

"P_Id" სვეტი "შეკვეთების" ცხრილის საგარეო გასაღები "შეკვეთების" მაგიდა.

საგარეო გასაღებით შეზღუდვა გამოიყენება რათა ქმედებები, რაც განადგურების კავშირების მაგიდები.

საგარეო გასაღებით შეზღუდვა ასევე ხელს უშლის, რომ არასწორი მონაცემების ჩამოყალიბდეს როგორც ჩასმული შევიდა უცხო გასაღების სვეტი, რადგან ეს უნდა იყოს ერთ ღირებულებების შეიცავს სუფრის იგი მიგვანიშნებს.


SQL საგარეო გასაღებით შეზღუდვა CREATE TABLE

შემდეგი SQL ქმნის საგარეო გასაღებით შესახებ "P_Id" სვეტის როდესაც "შეკვეთების" ცხრილის შექმნა:

MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

იმისათვის დასახელებისგან უცხო გასაღებით შეზღუდვა და განმსაზღვრელი საგარეო გასაღებით შეზღუდვა მრავალი სვეტის, გამოიყენეთ შემდეგი SQL syntax:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)


SQL საგარეო გასაღებით შეზღუდვა შეცვალოს TABLE

შექმნა საგარეო გასაღებით შეზღუდვა "P_Id" სვეტის როდესაც "შეკვეთების" მაგიდა უკვე შექმნილია, გამოიყენეთ შემდეგი SQL:

MySQL / SQL Server / Oracle / MS Access:

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

იმისათვის დასახელებისგან უცხო გასაღებით შეზღუდვა და განმსაზღვრელი საგარეო გასაღებით შეზღუდვა მრავალი სვეტის, გამოიყენეთ შემდეგი SQL syntax:

MySQL / SQL Server / Oracle / MS Access:

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


მწკრივი საგარეო გასაღებით შეზღუდვა

მწკრივი საგარეო გასაღებით შეზღუდვა, გამოიყენეთ შემდეგი SQL:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

«წინა შემდეგი თავი »
Hosted by uCoz