Khóa ngoại là gì

  -  

Khóa nước ngoài được dùng để làm tăng tính tmê mệt chiếu trong các đại lý dữ liệu Squốc lộ Server. Khóa nước ngoài tức thị quý hiếm trong bảng này đề nghị mở ra trong bảng không giống.

Bạn đang xem: Khóa ngoại là gì

Bảng tsi mê chiếu call là bảng bà bầu, còn bảng cất khóa nước ngoài Điện thoại tư vấn là bảng bé. Khóa ngoại trong bảng con thường xuyên tđam mê chiếu tới khóa chínhPRIMARY KEYvào bảng người mẹ.

Khóa nước ngoài có thể được tạo ra bằng lệnhCREATE TABLEhoặc lệnhALTER TABLE.

Cú pháp:

CREATE TABLE bang_bé ( cot1 kieudulieu < NULL | NOT NULL >, cot2 kieudulieu < NULL | NOT NULL >, … CONSTRAINT fk_ten FOREIGN KEY (cot_con1, cot_con2, … cot_con_n) REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n) < ON DELETE SET DEFAULT > < ON UPDATE NO ACTION > );

Giải say mê những tđam mê số trên

bang_con

Tên của bảng con hy vọng chế tạo.

cot1, cot2

Cột ước ao sản xuất trong bảng. Mỗi cột có một loại dữ liệu, cần được chỉ định là đựng cực hiếm NULL xuất xắc NOT NULL, còn nếu không vẫn mặc định là NULL.

fk_ten

Tên của buộc ràng khóa nước ngoài mong mỏi sản xuất.

cot_con1, cot_con2, … cot_con_n

Cột vào bang_con hy vọng tham chiếu tới khóa thiết yếu trong bang_me.

bang_me

Tên của bảng người mẹ chứa khóa chính được dùng vào bang_bé.

cot_me1, cot_me2, … cot_me_n

Cột tạo cho khóa chủ yếu trong bang_me. Khóa ngoại sẽ tạo nên ràng buộc giữa dữ liệu cùng các cột cot_con1, cot_con2, … cot_con_n trong bang_bé.

ON DELETE

Tùy chọn. Cho biết đang làm cái gi với tài liệu con Khi dữ liệu mẹ bị xóa. Có các chắt lọc NO ACTION, CASCADE, SET NULL cùng SET DEFAULT.

ON UPDATE

Tùy lựa chọn. Cho biết đang làm những gì cùng với dữ liệu con khi dữ liệu người mẹ được cập nhật. Có các lựa chọn NO ACTION, CASCADE, SET NULL với SET DEFAULT.

Xem thêm: Trò Chơi Trang Điểm Làm Đẹp Cho Cô Dâu 8T Ngày Cưới, Trang Điểm Làm Đẹp Công Chúa 4+

NO ACTION

Dùng với ON DELETE hoặc ON UPDATE, tức là không làm cái gi với tài liệu nhỏ Khi dữ liệu chị em bị xóa hoặc cập nhật.

CASCADE

Dùng với ON DELETE hoặc ON UPDATE, tức thị tài liệu nhỏ bị xóa hoặc cập nhật khi dữ liệu bà bầu bị xóa hoặc cập nhật.

SET NULL

Dùng với ON DELETE hoặc ON UPDATE, nghĩa là tài liệu nhỏ được đặt là NULL Lúc tài liệu chị em bị xóa hoặc update.

SET DEFAULT

Dùng cùng với ON DELETE hoặc ON UPDATE, nghĩa là tài liệu con được đặt thành giá trị khoác định lúc tài liệu chị em bị xóa hoặc cập nhật.

Khóa nước ngoài Foreign Key (Cascade Delete) vào Squốc lộ ServerKhóa nước ngoài Foreign Key (Set Null) vào Squốc lộ Server

lấy ví dụ như :

Chúng ta đã nhì bảng"products" và"inventory". Trong bảng "products" tất cả khóa chủ yếu là"product_id" cũng chính là khóa ngoại vào bảng "inventory".

CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, category VARCHAR(25) ); CREATE TABLE inventory ( inventory_id INT PRIMARY KEY, product_id INT NOT NULL, quantity INT, min_level INT, max_level INT, CONSTRAINT fk_inv_product_id FOREIGN KEY (product_id) REFERENCES products (product_id) ); Kết quả:

*

Tên khóa ràng buộc khóa ngoại vào bảng "inventory"fk_inv_product_id.Nó đã tùy chỉnh quan hệ giữ nhì bảng"inventory" cùng "products" trên cộtproduct_id.

Chúng ta có thể soát sổ 2 bảng:.

*
*

Tạo khóa ngoại thực hiện những trường

Create foreign key with more than one field

Trong ví dụ bên trên họ chế tạo khóa nước ngoài sử dụng một cột, vào ví dụ sau bọn họ sẽ tạo nên khóa ngoại nhiều hơn thế một trường.

Giờ họ chế tác nhì bảng"products2" "inventory2". Trong ví dụ này bảng "products2"có khóa đó là hai cộtproduct_name vàlocation.

Xem thêm: Game Hanh Trinh Di Tim Kho Bau, Game Đi Tìm Kho Báu

Do đó, bảng thứ hai đề xuất bao gồm khóa nước ngoài là hai cột này

Trong ví dụ này, tên khóa nước ngoài làfk_inv_product ttê mê chiếu mang lại bảng products bao gồm nhì trường: the product_name vàlocation.

CREATE TABLE products2 ( product_name VARCHAR(50) NOT NULL, location VARCHAR(50) NOT NULL, category VARCHAR(25) CONSTRAINT products_pk PRIMARY KEY (product_name, location) ); CREATE TABLE inventory2 ( inventory_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, location VARCHAR(50) NOT NULL, quantity INT, min_level INT, max_level INT, CONSTRAINT fk_inv_sản phẩm FOREIGN KEY (product_name, location) REFERENCES products2 (product_name, location) ); Kết quả: