4、在scott模式下创建emp_logs表,表结构如表1 所示。创建触发器TrigEmpLogs完成以下功能,当从emp删除一条记录后,把被删除的员工编号、员工姓名、部门编号、删除时间记录在emp_logs表中。
时间: 2024-03-17 11:44:00 浏览: 22
好的,我理解了你的要求。以下是创建emp_logs表和TrigEmpLogs触发器的SQL语句:
```
-- 创建emp_logs表
CREATE TABLE emp_logs (
empno NUMBER(4),
ename VARCHAR2(10),
deptno NUMBER(2),
del_time TIMESTAMP
);
-- 创建TrigEmpLogs触发器
CREATE OR REPLACE TRIGGER TrigEmpLogs
AFTER DELETE ON emp
FOR EACH ROW
DECLARE
BEGIN
INSERT INTO emp_logs (empno, ename, deptno, del_time)
VALUES (:OLD.empno, :OLD.ename, :OLD.deptno, SYSTIMESTAMP);
END;
/
```
解释一下上述代码的含义:
- emp_logs表:该表用于存储从emp表中删除的记录的信息,包括员工编号(empno)、员工姓名(ename)、部门编号(deptno)和删除时间(del_time)。
- TrigEmpLogs触发器:该触发器在emp表中有记录被删除时触发,将被删除的记录的信息插入到emp_logs表中。其中,:OLD.empno、:OLD.ename和:OLD.deptno是指被删除的记录的相应字段的值,SYSTIMESTAMP是系统函数,用于获取当前时间戳。
注意,在创建TrigEmpLogs触发器时,需要使用CREATE OR REPLACE TRIGGER语句,表示如果该触发器已经存在,则替换原有的触发器。