为学生信息表Student-info\成绩信息表SC-info和课程信息表Course-info创建参照完整性:级联删除和级联修改触发器
时间: 2024-03-07 22:49:19 浏览: 131
你可以使用以下SQL语句为表Student-info、SC-info和Course-info创建参照完整性:
1. 为Student-info表添加外键参照完整性,当学生记录被删除时,级联删除SC-info表中相关学生的成绩记录。
```sql
ALTER TABLE SC-info ADD CONSTRAINT fk_sc_info_student
FOREIGN KEY (sid) REFERENCES Student-info(sid)
ON DELETE CASCADE;
```
2. 为Course-info表添加外键参照完整性,当课程记录被删除时,级联删除SC-info表中相关课程的成绩记录。
```sql
ALTER TABLE SC-info ADD CONSTRAINT fk_sc_info_course
FOREIGN KEY (cid) REFERENCES Course-info(cid)
ON DELETE CASCADE;
```
3. 为Student-info表添加外键参照完整性,当学生记录的班级信息被修改时,级联修改SC-info表中相关学生的班级信息。
```sql
CREATE TRIGGER trig_student_info_class_update
AFTER UPDATE ON Student-info
FOR EACH ROW
BEGIN
IF NEW.class <> OLD.class THEN
UPDATE SC-info SET class = NEW.class WHERE sid = NEW.sid;
END IF;
END;
```
4. 为Course-info表添加外键参照完整性,当课程记录的学分信息被修改时,级联修改SC-info表中相关课程的学分信息。
```sql
CREATE TRIGGER trig_course_info_credit_update
AFTER UPDATE ON Course-info
FOR EACH ROW
BEGIN
IF NEW.credit <> OLD.credit THEN
UPDATE SC-info SET credit = NEW.credit WHERE cid = NEW.cid;
END IF;
END;
```
需要注意的是,这些参照完整性和触发器只是示例,适用于一些简单的情况。在实际应用中,你可能需要根据具体的业务需求和数据模型设计更加复杂的参照完整性和触发器逻辑。
阅读全文