相关疑难解决方法(0)

SQL ON DELETE CASCADE,删除的方式是什么?

如果我在数据库中有两个关系,如下所示:

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
);
Run Code Online (Sandbox Code Playgroud)

我建立了两者之间的外键关系,如下所示:

ALTER TABLE BookCourses
ADD FOREIGN KEY (Course)
REFERENCES Courses(Code)
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

然后,你可以看到,Course在属性BookCourses关系引用Code属性的Courses关系.

我的问题是当两个关系中的任何一个发生删除时,删除级联的方式是什么?如果我删除Courses关系中的元组,它会删除关系中的所有引用元组BookCourses,还是反过来?

感谢您的时间.

sql database database-design cascade relation

152
推荐指数
2
解决办法
18万
查看次数

Postgresql约束

我似乎无法做到这一点,我试图修改一个字段作为外键,级联删除...我做错了什么?

ALTER TABLE my_table 
ADD CONSTRAINT $4 
FOREIGN KEY my_field 
REFERENCES my_foreign_table 
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

postgresql foreign-keys

44
推荐指数
3
解决办法
5万
查看次数