Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sử dụng khóa ngoại (Foreign Keys) trong MySQL

Hiểu cách dùng khóa ngoại trong MySQL.

Bảng InnoDB hỗ trợ kiểm tra ràng buộc khóa ngoại. Ràng buộc khóa ngoại không bắt buộc chỉ để join 2 bảng. Có thể dùng khi định nghĩa cột cần dùng, cho storage engine ngoài InnoDB. REFERENCES tableName(colName) không có hiệu lực thực, chỉ đóng vai trò comment cho user biết cột đang định nghĩa dự định tham chiếu cột trong bảng khác.

MySQL không kiểm tra đảm bảo colName thực sự tồn tại trong tableName hay tableName có thực sự tồn tại.

Trong bảng cha (parent table), khóa ngoại đóng vai trò primary key. Xem ví dụ tạo bảng.

Tạo bảng con (child table)

mysql> create table StudentEnrollment
    -> (
    -> StudentId int,
    -> StudentName varchar(200),
    -> StudentFKPK int
    -> );
Query OK, 0 rows affected (0.91 sec)

Tạo bảng cha (parent table)

mysql> create table College
    -> (
    -> StudentFKPK int,
    -> CourseId int,
    -> CourseName varchar(200),
    -> CollegeName varchar(200),
    -> primary key(StudentFKPK)
    -> );
Query OK, 0 rows affected (0.46 sec)

Trong bảng cha, cột StudentFKPK là primary key. Dùng lệnh ALTER thêm khóa ngoại.

Cú pháp thêm khóa ngoại:

ALTER TABLE yourChildTableName ADD CONSTRAINT anyConstraintName FOREIGN KEY(primary key column name for parent table) REFERENCES College(primary key column name for parent table);