Khóa nước ngoài (Foreign Key) là gì?

Khóa nước ngoài là 1 trong cột (column) hoặc một nhóm những cột vào một bảng tđê mê chiếu tới một hàng vào một bảng không giống. Nói phương pháp không giống, khóa ngoại được khẳng định vào bảng tham chiếu đến khóa chính của bảng không giống.

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

Một bảng rất có thể có rất nhiều khóa ngoại tùy nằm trong vào quan hệ của chính nó với các bảng không giống.

Xem thêm: Tên Thật Của L Tên Thật Là Gì ? Danh Sách Nhân Vật Trong Death Note

Trong PostgreSQL, bạn xác định khóa nước ngoài trải qua buộc ràng khóa nước ngoài. Ràng buộc khóa xung quanh cho là các giá trị trong một cột hoặc một đội nhóm những cột vào bảng con khớp với những giá trị trong một cột hoặc một đội những cột của bảng phụ vương.

Định nghĩa khóa ngoại (Foreign Key) Lúc chế tạo bảng

Để khái niệm 1 column là một trong những khóa ngoại Khi tạo ra bảng, bọn họ thực hiện tự khóa: REFERENCES

Cú pháp:

CREATE TABLE ( REFERENCES (),);Ví dụ: Chúng ta tất cả 2 bảng usersgroups bao gồm mối quan hệ nlỗi sau:

*

Với group_id của bảng users là column gồm rằng buộc khóa ngoại liên kết tới khóa bao gồm của của bảng groups

Để chế tạo ra bảng users tất cả group_id là column tất cả rằng buộc khóa ngoại, chúng ta thực hiện câu lệnh Squốc lộ 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 cần phải chế tác trước.

Hình như hoàn toàn 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, tin nhắn 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 ngoại cho 1 tập vừa lòng các column

Trong ngôi trường vừa lòng khóa ngoại là một trong team cột, họ khái niệm khóa ngoại nhỏng 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 cơ sở dữ liệu là employee (Bảng con) cùng company (Bảng cha) tất cả quan hệ nlỗi sau:

*

Lệnh Squốc lộ sản xuất bảng employee gồm khóa ngoại liên kết cho tới bảng company hệt 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 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 nay gồm, chúng ta sử dụng câu lệnh ALTER TABLE nlỗi sau:

ALTER TABLE child_tableShowroom 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 liên kết cho tới bảng groups

ALTER TABLE employee Showroom COLUMN group_id integer;ALTER TABLE employee Địa Chỉ 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 *