Hướng dẫn MySQL

MySQL HOME Giới thiệu MySQL MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL Ở ĐÂU MySQL VÀ, HOẶC, KHÔNG ĐẶT HÀNG MySQL BỞI CHÈN MySQL VÀO Giá trị MySQL NULL CẬP NHẬT MySQL MySQL DELETE MySQL LIMIT MySQL MIN và MAX MySQL COUNT, AVG, SUM MySQL LIKE MySQL Wildcards MySQL IN MySQL GIỮA Bí danh MySQL MySQL tham gia MySQL INNER THAM GIA MySQL THAM GIA TRÁI THAM GIA QUYỀN MySQL THAM GIA CROSS MySQL MySQL Tự tham gia MySQL UNION MySQL GROUP BY MySQL CÓ MySQL tồn tại MySQL BẤT CỨ, TẤT CẢ CHÈN CHÈN MySQL MySQL CASE MySQL Null Functions Nhận xét MySQL Toán tử MySQL

Cơ sở dữ liệu MySQL

MySQL Tạo cơ sở dữ liệu MySQL Drop DB MySQL Tạo bảng Bảng thả MySQL Bảng MySQL Alter Các ràng buộc của MySQL MySQL không rỗng MySQL duy nhất Khóa chính MySQL Khóa ngoại MySQL Kiểm tra MySQL MySQL mặc định MySQL Tạo chỉ mục Tăng tự động MySQL MySQL Dates Chế độ xem MySQL

Tài liệu tham khảo MySQL

Các kiểu dữ liệu MySQL Các chức năng của MySQL

Ví dụ về MySQL

Ví dụ về MySQL MySQL Quiz Bài tập MySQL

Ràng buộc MySQL FOREIGN KEY


Ràng buộc MySQL FOREIGN KEY

Ràng FOREIGN KEYbuộc được sử dụng để ngăn chặn các hành động phá hủy liên kết giữa các bảng.

A FOREIGN KEYlà một trường (hoặc tập hợp các trường) trong một bảng, tham chiếu đến PRIMARY KEYtrong một bảng khác.

Bảng có khóa ngoại được gọi là bảng con và bảng có khóa chính được gọi là bảng tham chiếu hoặc bảng cha.

Nhìn vào hai bảng sau:

Bàn người

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

Bảng đơn hàng

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

Lưu ý rằng cột "PersonID" trong bảng "Order" trỏ đến cột "PersonID" trong bảng "Person".

Cột "ID Người" trong bảng "Người" là PRIMARY KEYtrong bảng "Người".

Cột "PersonID" trong bảng "Đơn đặt hàng" là một FOREIGN KEYtrong bảng "Đơn đặt hàng".

Ràng FOREIGN KEYbuộc ngăn không cho dữ liệu không hợp lệ được chèn vào cột khóa ngoại, vì nó phải là một trong các giá trị có trong bảng mẹ.



TỪ KHÓA NGOẠI TỆ trên TẠO BẢNG

SQL sau tạo một FOREIGN KEYtrên cột "PersonID" khi bảng "Đơn hàng" được tạo:

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

Để cho phép đặt tên cho một FOREIGN KEYràng buộc và để xác định một FOREIGN KEYràng buộc trên nhiều cột, hãy sử dụng cú pháp SQL sau:

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

TỪ KHÓA NGOẠI TỆ trên BẢNG ALTER

Để tạo FOREIGN KEYràng buộc trên cột "PersonID" khi bảng "Đơn hàng" đã được tạo, hãy sử dụng SQL sau:

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

Để cho phép đặt tên cho một FOREIGN KEYràng buộc và để xác định một FOREIGN KEYràng buộc trên nhiều cột, hãy sử dụng cú pháp SQL sau:

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

VƯỢT QUA Ràng buộc ĐỐI NGOẠI

Để loại bỏ một FOREIGN KEYràng buộc, hãy sử dụng SQL sau:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;