2.触发器(7分) (1)删除elective表的2个外键定义。(1分) (2)建立elective表sno字段受studentinfo表sno字段制约的删除触发器与更新触发器。(4分) (3)删除student中学号为200101的记录内容,看elective关系的相关记录是否改过来。(1分) (4)修改student中学号为200102的记录对应学号修改为200000,看看elective关系的相关记录是否改过来。(1分)
时间: 2024-01-11 13:05:43 浏览: 193
132-S-916.2 Testinside 最新更新
1. 删除elective表的2个外键定义的SQL语句如下:
```
ALTER TABLE elective DROP FOREIGN KEY fk_elective_course;
ALTER TABLE elective DROP FOREIGN KEY fk_elective_student;
```
2. 建立elective表sno字段受studentinfo表sno字段制约的删除触发器与更新触发器的SQL语句如下:
```
-- 删除触发器
CREATE TRIGGER delete_elective_trigger
BEFORE DELETE ON studentinfo
FOR EACH ROW
BEGIN
DELETE FROM elective WHERE sno = OLD.sno;
END;
-- 更新触发器
CREATE TRIGGER update_elective_trigger
AFTER UPDATE ON studentinfo
FOR EACH ROW
BEGIN
UPDATE elective SET sno = NEW.sno WHERE sno = OLD.sno;
END;
```
3. 删除student中学号为200101的记录内容的SQL语句如下:
```
DELETE FROM studentinfo WHERE sno = '200101';
```
执行后,会触发删除触发器,自动删除elective表中所有sno为200101的记录。
4. 修改student中学号为200102的记录对应学号修改为200000的SQL语句如下:
```
UPDATE studentinfo SET sno = '200000' WHERE sno = '200102';
```
执行后,会触发更新触发器,自动将elective表中所有sno为200102的记录的sno改为200000。
阅读全文