9.为EDUC数据库中的tb_student表创建一个名为 tr_deletestudent的DELETE触发器 --该触发器的作用是禁止修改及删除tb_student 表中的记录。
时间: 2023-06-18 21:07:20 浏览: 125
数据库-实验一-数据定义.pdf
在创建该触发器之前,需要先创建一个用于存储被删除的记录的备用表,以便于日后恢复数据。可以使用以下SQL语句:
```
CREATE TABLE tb_student_backup (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10),
major VARCHAR(50)
);
```
接下来,可以创建一个名为 tr_deletestudent 的DELETE触发器,代码如下:
```
CREATE TRIGGER tr_deletestudent
BEFORE DELETE ON tb_student
FOR EACH ROW
BEGIN
INSERT INTO tb_student_backup (id, name, age, gender, major)
VALUES (OLD.id, OLD.name, OLD.age, OLD.gender, OLD.major);
SELECT RAISE(ABORT, 'Deleting records from student table is not allowed');
END;
```
该触发器在删除tb_student表中的记录之前,将被删除的记录插入到备用表tb_student_backup中,并且会阻止删除操作的执行。如果有人尝试删除tb_student表中的记录,将会触发异常,提示不允许删除操作。
阅读全文