触发器实验

发布时间 2023-11-29 22:48:52作者: 周正阳

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语言的能力