在查询中测试这段代码
时间: 2024-02-19 12:03:50 浏览: 66
以下是一个测试例子,您可以在查询中运行它以验证触发器是否有效。
首先,创建一个名为`student`的表和一个名为`sc`的表,并向表中插入一些数据:
```
CREATE TABLE student (
sno INT PRIMARY KEY,
sname VARCHAR(20),
ssex CHAR(2),
sbirthday DATE,
sdept VARCHAR(20)
);
INSERT INTO student (sno, sname, ssex, sbirthday, sdept)
VALUES (1, 'Alice', 'F', '2000-01-01', 'Computer Science'),
(2, 'Bob', 'M', '2000-02-02', 'Mathematics');
CREATE TABLE sc (
sno INT,
cno INT,
score INT,
PRIMARY KEY (sno, cno)
);
INSERT INTO sc (sno, cno, score)
VALUES (1, 1, 80),
(1, 2, 90),
(2, 1, 85),
(2, 2, 95);
```
接下来,创建一个名为`student_delete`的触发器:
```
CREATE TRIGGER student_delete
AFTER DELETE ON student
FOR EACH ROW
BEGIN
DELETE FROM sc WHERE sno = old.sno;
END;
```
然后,删除表`student`中的一行数据:
```
DELETE FROM student WHERE sno = 1;
```
最后,检查表`sc`中是否相应地删除了相应的学生学习成绩:
```
SELECT * FROM sc;
```
您应该会看到以下结果,其中`sno=1`的学生的学习成绩已经被删除了:
```
sno | cno | score
---- | ---- | -----
2 | 1 | 85
2 | 2 | 95
```
阅读全文