在course表上创建触发器del_trig,当course表上删除一门课程时,级联删除sc表该课程的记录。 删除course表的一条记录,查看sc表相应记录是否被自动删除。
时间: 2024-03-02 18:54:10 浏览: 255
好的,您的问题是如何在course表上创建一个触发器,在删除一门课程时自动级联删除sc表中该课程的记录,然后检查sc表中是否相应记录被自动删除。下面是具体的SQL代码:
```
CREATE TRIGGER del_trig
AFTER DELETE ON course
FOR EACH ROW
BEGIN
DELETE FROM sc WHERE course_id = old.course_id;
END;
```
这个触发器在course表上创建,当course表上删除一门课程时,触发器会自动执行,将sc表中与该课程有关的记录删除。您可以通过以下步骤来测试该触发器是否有效:
1. 在course表中删除一门课程,例如:`DELETE FROM course WHERE course_id = 'C001';`
2. 检查sc表中是否已经删除了该课程的记录,例如:`SELECT * FROM sc WHERE course_id = 'C001';`
如果sc表中与该课程有关的记录已经被自动删除,那么说明该触发器已经成功创建并且能够正常工作。
相关问题
在Category_XXX表上创建触发器del_XXX_trig,当Category_XXX表上删除一个类别时,级联删除toys_XXX表该类别的记录。
好的,您需要在数据库中执行以下SQL语句来创建触发器:
```
CREATE TRIGGER del_XXX_trig
AFTER DELETE ON Category_XXX
FOR EACH ROW
BEGIN
DELETE FROM toys_XXX WHERE category_id = OLD.category_id;
END;
```
其中,`Category_XXX`是您要创建触发器的表名,`toys_XXX`是要级联删除的表名,`category_id`是关联这两张表的外键字段名。当在`Category_XXX`表上删除一条记录时,该触发器会自动删除`toys_XXX`表中与该记录关联的所有记录。
用oracle语句,创建借书触发器LEND_TRIG,当BookLend表中插入一条记录时,修改图书表中该图书的状态为“借出”
好的,以下是创建LEND_TRIG触发器的Oracle语句:
```
CREATE OR REPLACE TRIGGER LEND_TRIG
AFTER INSERT ON BookLend
FOR EACH ROW
BEGIN
UPDATE Book
SET status = '借出'
WHERE book_id = :NEW.book_id;
END;
/
```
这个触发器会在每次向BookLend表中插入一条记录之后执行,然后将对应的图书的状态更新为“借出”。注意,这里的book_id需要根据实际情况修改为对应的图书ID字段名。
阅读全文