Khóa ngoại (Foreign Key) là gì?

Khóa ngoại là 1 trong cột (column) hoặc một đội các cột trong một bảng ttê mê chiếu cho tới một sản phẩm vào một bảng không giống. Nói giải pháp không giống, khóa ngoại được xác minh vào bảng tđê mê chiếu mang đến khóa thiết yếu của bảng không giống.quý khách hàng đang xem: Foreign key là gì

Định nghĩa khóa nước ngoài (Foreign Key) lúc sinh sản bảng

Để tư tưởng 1 column là 1 trong những khóa ngoại khi chế tác bảng, bọn họ áp dụng từ bỏ khóa: REFERENCES

Cú pháp:

CREATE TABLE ( REFERENCES (),);Ví dụ: Chúng ta gồm 2 bảng users cùng groups gồm quan hệ nlỗi sau:


Bạn đang xem: Foreign key là gì

*

Với group_id của bảng users là column gồm rằng buộc khóa ngoại link cho tới khóa chủ yếu của của bảng groups

Để chế tác bảng users gồm group_id là column bao gồm rằng buộc khóa ngoại, bọn họ sử dụng câu lệnh SQL sau:

CREATE TABLE public.users( user_id integer NOT NULL, group_id integer REFERENCES groups(group_id), username character varying COLLATE pg_catalog."default" NOT NULL, password character varying COLLATE pg_catalog."default" NOT NULL, gmail character varying COLLATE pg_catalog."default", created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone, deleted_at timestamp without time zone)Chụ ý: Bảng groups rất cần được tạo ra trước.

Ngoài ra có thể thực hiện keyword: FOREIGN KEY

CREATE TABLE public.users( user_id integer NOT NULL, group_id integer NOT NULL, username character varying COLLATE pg_catalog."default" NOT NULL, password character varying COLLATE pg_catalog."default" NOT NULL, email character varying COLLATE pg_catalog."default", created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone, deleted_at timestamp without time zone, FOREIGN KEY (group_id) REFERENCES groups(group_id))

Định nghĩa khóa nước ngoài cho 1 tập phù hợp những column

Trong trường đúng theo khóa nước ngoài là một trong những đội cột, bọn họ có mang khóa nước ngoài như sau:

CREATE TABLE child_table(child_column_1 INTEGER PRIMARY KEY,child_column_2 INTEGER,child_column_3 INTEGER,FOREIGN KEY (child_column_2 , child_column_3 ) REFERENCES parent_table (parent_column_1, parent_column_2));Ví dụ: Chúng ta gồm 2 bảng CSDL là employee (Bảng con) và company (Bảng cha) bao gồm quan hệ như sau:


*

Xem thêm: Những Điều Cần Biết Về Bảng Vẽ Điện Tử Wacom Là Gì, Nên Lưu Ý Gì Khi Mua

Lệnh SQL sản xuất bảng employee gồm khóa ngoại links cho tới bảng company như sau:

CREATE TABLE public.employee( employee_id integer NOT NULL PRIMARY KEY, company_id integer, company_code integer, fullname character varying, position character varying, salary money, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone, deleted_at timestamp without time zone, FOREIGN KEY (company_id , company_code ) REFERENCES company (company_id, company_code))

*

Thêm khóa nước ngoài vào bảng

Để thêm một buộc ràng khóa nước ngoài vào bảng hiện gồm, bạn sử dụng câu lệnh ALTER TABLE như sau:

ALTER TABLE child_tableĐịa Chỉ CONSTRAINT constraint_name FOREIGN KEY (child_column_1) REFERENCES parent_table (parent_column_1);Ví dụ: Thêm column group_id vào thêm khóa nước ngoài links tới bảng groups

ALTER TABLE employee Địa chỉ cửa hàng COLUMN group_id integer;ALTER TABLE employee ADD CONSTRAINT fk_group_id FOREIGN KEY (group_id) REFERENCES groups(group_id);

*

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *