对Course1表建立触发器,保证删除一门课程时,同步删除该门课程的所有选课记录。用SQL语句验证此触发器
时间: 2024-03-06 11:51:18 浏览: 25
可以使用下面的 SQL 语句创建触发器来保证删除一门课程时,同步删除该门课程的所有选课记录:
```sql
CREATE TRIGGER delete_course
AFTER DELETE ON Course1
FOR EACH ROW
BEGIN
DELETE FROM CourseSelection1 WHERE course_id = OLD.course_id;
END;
```
这个触发器将在每次删除 Course1 表中的一条记录时执行。对于每条被删除的记录,它会在 CourseSelection1 表中删除所有该课程的选课记录。
为了验证这个触发器是否生效,可以尝试删除 Course1 表中的一门课程,例如:
```sql
DELETE FROM Course1 WHERE course_id = 1234;
```
如果触发器生效,那么该删除语句会删除 Course1 表中的记录,并且同时删除 CourseSelection1 表中所有该课程的选课记录。可以进一步查询 CourseSelection1 表来验证触发器是否生效:
```sql
SELECT * FROM CourseSelection1 WHERE course_id = 1234;
```
如果触发器生效,那么该查询语句应该返回空结果集,因为该课程的选课记录已被删除。
相关问题
对Course1表建立触发器,保证删除一门课程时,同步删除该门课程的所有选课记录。用SQL语句验证此触发器。
可以使用以下 SQL 语句来为 Course1 表添加触发器:
```
CREATE TRIGGER trigger_name
BEFORE DELETE ON Course1
FOR EACH ROW
BEGIN
DELETE FROM selection WHERE course_id = OLD.course_id;
END;
```
其中,`trigger_name` 为触发器的名称,`OLD.course_id` 表示被删除的行的数据,`selection` 表示选课记录表。
可以使用以下 SQL 语句来验证此触发器:
```
DELETE FROM Course1 WHERE course_id = 'xxx';
```
其中,`xxx` 为被删除的课程的 ID。执行该语句后,如果触发器设置成功,则会同时删除该课程的所有选课记录。
(4)对Course1表建立触发器,保证删除一门课程时,同步删除该门课程的所有选课记录。用SQL语句验证此触发器。
以下是对Course1表建立触发器的SQL语句:
```
CREATE TRIGGER delete_course_trigger
BEFORE DELETE ON Course1
FOR EACH ROW
BEGIN
DELETE FROM Selection1 WHERE course_id = OLD.course_id;
END;
```
这个触发器会在删除Course1表中的一条记录之前被触发,然后会删除Selection1表中所有与该门课程相关的选课记录。测试此触发器的SQL语句如下:
```
DELETE FROM Course1 WHERE course_id = 'C001';
```
如果该门课程相关的选课记录都被成功删除,则说明触发器生效。