ON DELETE CASCADE LÀ GÌ

     

Khóa ngoại được dùng làm tăng tính tham chiếu trong cơ sở dữ liệu SQL Server. Khóa nước ngoài nghĩa là cực hiếm trong bảng này phải xuất hiện thêm trong bảng khác.Bạn vẫn xem: On delete cascade là gì

Bảng tham chiếu hotline là bảng mẹ, còn bảng chứa khóa ngoại gọi là bảng con. Khóa nước ngoài trong bảng con thường tham chiếu tới khóa chínhPRIMARY KEYtrong bảng mẹ.Bạn đã xem: On delete cascade là gì

Khóa ngoại có thể được tạo bởi lệnhCREATE TABLEhoặc lệnhALTER TABLE.

Bạn đang xem: On delete cascade là gì

Cú pháp:

CREATE TABLE bang_con ( cot1 kieudulieu , cot2 kieudulieu , … CONSTRAINT fk_ten FOREIGN KEY (cot_con1, cot_con2, … cot_con_n) REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n) );

Giải thích những tham số trên

bang_con

Tên của bảng con ước ao tạo.

cot1, cot2

Cột ao ước tạo trong bảng. Từng cột có một loại dữ liệu, đề xuất được hướng dẫn và chỉ định là đựng giá trị NULL hay NOT NULL, nếu không sẽ khoác định là NULL.

fk_ten

Tên của buộc ràng khóa ngoại hy vọng tạo.

cot_con1, cot_con2, … cot_con_n

Cột vào bang_con ao ước tham chiếu tới khóa bao gồm trong bang_me.

bang_me

Tên của bảng bà mẹ chứa khóa chính được dùng trong bang_con.

cot_me1, cot_me2, … cot_me_n

Cột tạo cho khóa thiết yếu trong bang_me. Khóa ngoại sẽ tạo ràng buộc giữa tài liệu và những cột cot_con1, cot_con2, … cot_con_n trong bang_con.

ON DELETE

Tùy chọn. Cho thấy thêm sẽ làm những gì với dữ liệu con khi tài liệu mẹ bị xóa. Có những lựa chọn NO ACTION, CASCADE, mix NULL và SET DEFAULT.

ON UPDATE

NO ACTION

Dùng với ON DELETE hoặc ON UPDATE, tức là không làm gì với tài liệu con khi dữ liệu mẹ bị xóa hoặc cập nhật.

Xem thêm: Nêu Nguồn Lợi Của Thân Mềm Là Làm Thực Phẩm, Nguồn Lợi Của Thân Mềm Là

CASCADE

Dùng cùng với ON DELETE hoặc ON UPDATE, nghĩa là dữ liệu con bị xóa hoặc update khi dữ liệu mẹ bị xóa hoặc cập nhật.

SET NULL

Dùng với ON DELETE hoặc ON UPDATE, nghĩa là dữ liệu con được đặt là NULL khi dữ liệu mẹ bị xóa hoặc cập nhật.

SET DEFAULT

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

Khóa nước ngoài Foreign Key (Cascade Delete) vào SQL ServerKhóa nước ngoài Foreign Key (Set Null) trong SQL Server

Ví dụ :

Chúng ta sẽ hai bảng"products" và"inventory". Vào bảng "products" gồm khóa chính là"product_id" cũng chính là khóa ngoại trong 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 buộc ràng khóa nước ngoài trong bảng "inventory"fk_inv_product_id.Nó sẽ tùy chỉnh quan hệ giữ hai bảng"inventory" cùng "products" trên cộtproduct_id.

Chúng ta hoàn toàn có thể kiểm tra 2 bảng:.


*

*

Tạo khóa ngoại sử dụng nhiều trường

Create foreign key with more than one field

Trong ví dụ như trên họ tạo khóa ngoại áp dụng một cột, trong ví dụ như sau họ sẽ tạo nên khóa ngoại nhiều hơn thế nữa một trường.

Xem thêm: Pinata Là Gì ? Nguồn Gốc Và Ý Nghĩa Của Văn Hoá Pinata Mọi Điều Bạn Muốn Biết Về Pinata Mexico

Trong lấy ví dụ như này, thương hiệu khóa ngoại làfk_inv_product tham chiếu mang đến bảng products có hai 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_product FOREIGN KEY (product_name, location) REFERENCES products2 (product_name, location) ); Kết quả: