Nếu tôi có hai mối quan hệ trong một cơ sở dữ liệu, như thế này:SQL ON DELETE CASCADE, Đường nào xảy ra?
CREATE TABLE Courses (
CourseID int NOT NULL PRIMARY KEY,
Course VARCHAR(63) NOT NULL UNIQUE,
Code CHAR(4) NOT NULL UNIQUE
);
CREATE TABLE BookCourses (
EntryID int NOT NULL PRIMARY KEY,
BookID int NOT NULL,
Course CHAR(4) NOT NULL,
CourseNum CHAR(3) NOT NULL,
CourseSec CHAR(1) NOT NULL
);
và tôi thiết lập một mối quan hệ chính nước ngoài giữa hai, như thế này:
ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Sau đó, bạn có thể thấy rằng Course
thuộc tính trong quan hệ BookCourses
tham chiếu thuộc tính Code
trong mối quan hệ Courses
.
Câu hỏi của tôi là khi việc xóa xảy ra ở một trong hai mối quan hệ, cách xóa bỏ thác? Nếu tôi xóa một tuple trong mối quan hệ Courses
, nó sẽ xóa tất cả các tham chiếu tuple trong mối quan hệ BookCourses
, hay nó là một cách khác xung quanh?
Cảm ơn bạn đã dành thời gian.
Người ta chỉ tự hỏi tại sao 'Categories' bảng có một' CourseID' như Primary Key trong khi 'Courses' bảng có' EntryID'. Bạn nghiêm túc cần phải suy nghĩ lại lựa chọn đặt tên của bạn. –
Vui lòng sử dụng tên cột thích hợp để tránh nhầm lẫn và cấu trúc DB rõ ràng. –