.创建插入触发器。为授课表teaching创建插入触发器teaching_insert。向teaching表添加数据时,需要检测tno和cno是否在教师表和课程表中存在。若不存在则向两个表各添加一条记录。创建之后测试触发器是否有效
时间: 2024-02-21 12:59:59 浏览: 84
OracleSQL题
可以使用以下SQL语句创建插入触发器:
```
CREATE TRIGGER teaching_insert
AFTER INSERT ON teaching
FOR EACH ROW
BEGIN
DECLARE tno_count INT;
DECLARE cno_count INT;
SELECT COUNT(*) INTO tno_count FROM teacher WHERE tno = NEW.tno;
SELECT COUNT(*) INTO cno_count FROM course WHERE cno = NEW.cno;
IF tno_count = 0 THEN
INSERT INTO teacher (tno, tname) VALUES (NEW.tno, '未知');
END IF;
IF cno_count = 0 THEN
INSERT INTO course (cno, cname) VALUES (NEW.cno, '未知');
END IF;
END;
```
这个触发器将在每次向teaching表插入数据时触发。它会检测tno和cno是否在teacher表和course表中存在,如果不存在,则在两个表中各插入一条记录。
要测试这个触发器是否有效,可以尝试向teaching表插入一些数据并检查是否正确地向teacher表和course表中插入了记录。例如,可以使用以下SQL语句向teaching表插入一条数据:
```
INSERT INTO teaching (tno, cno, term) VALUES ('1001', 'C001', '2020-2021-1');
```
如果触发器有效,则应该在teacher表和course表中各插入一条记录,同时teaching表中也会插入一条数据。
阅读全文