1. 登录到PDB数据库,使用SCOTT/TIGER用户。
2. 创建表Student和StudentBak,结构相同,字段信息如下:
名称 是否为空? 类型
SNO NOT NULL NUMBER(4)
SNAME 空 VARCHAR2(10)
AGE 空 NUMBER(4)
3. 编写DML触发器,名称自定,使得Student表和StudentBak表的数据时刻都完全相同。以下是触发器的生成代码:
```
CREATE TRIGGER trg_student
BEFORE INSERT ON Student
FOR EACH ROW
BEGIN
INSERT INTO StudentBak (SNO, SNAME, AGE)
VALUES (:NEW.SNO, :NEW.SNAME, :NEW.AGE);
END;
```
4. 在Student表上进行insert、update、delete操作。
5. 输出操作后的Student表和StudentBak表的数据。
实验结果:
1. 插入操作:
在Student表插入一条数据,如下:
```
INSERT INTO Student (SNO, SNAME, AGE)
VALUES (1, '小花', 20);
```
执行插入操作后,Student表和StudentBak表的数据相同。
2. 更新操作:
更新Student表中的数据,如下:
```
UPDATE Student
SET SNAME = '小红'
WHERE SNO = 1;
```
执行更新操作后,Student表和StudentBak表的数据相同。
3. 删除操作:
删除Student表中的数据,如下:
```
DELETE FROM Student
WHERE SNO = 1;
```
执行删除操作后,Student表和StudentBak表的数据相同。
四、心得体会
通过本次实验,我对DML触发器的语法结构、定义方法和触发时机有了更深入的了解。在实际应用中,触发器可以有效地保证数据的一致性和完整性,提高了数据库管理的效率。同时,实验也锻炼了我灵活运用PL/SQL语言的能力
标签:触发器,SNAME,SNO,AGE,实验,Student,StudentBak From: https://www.cnblogs.com/zhouzhengyang/p/17866106.html