在scott模式下创建emp_logs表,字段名分别为empno,empname,deptno,deltime,均为非空约束,且插入数据时采用Oracle的Current_TimeStamp函数可以获取当前的日期和时间,且创建触发器TrigEmpLogs完成以下功能,当从emp删除一条记录后,把被删除的员工编号、员工姓名、部门编号、删除时间记录在emp_logs表中
时间: 2024-03-08 16:50:37 浏览: 135
根据Oracle数据库scott模式下的emp表和dept表
4星 · 用户满意度95%
好的,您的问题是如何在Scott模式下创建emp_logs表,并创建触发器TrigEmpLogs实现相应的功能。下面是相应的SQL语句:
```
-- 创建emp_logs表
CREATE TABLE emp_logs (
empno NUMBER NOT NULL,
empname VARCHAR2(50) NOT NULL,
deptno NUMBER NOT NULL,
deltime TIMESTAMP NOT NULL,
CONSTRAINT emp_logs_pk PRIMARY KEY (empno, deltime)
);
-- 创建触发器TrigEmpLogs
CREATE OR REPLACE TRIGGER TrigEmpLogs
AFTER DELETE ON emp
FOR EACH ROW
BEGIN
INSERT INTO emp_logs (empno, empname, deptno, deltime)
VALUES (:OLD.empno, :OLD.ename, :OLD.deptno, CURRENT_TIMESTAMP);
END;
/
```
这个SQL语句会在Scott模式下创建一个名为emp_logs的表,该表包含empno、empname、deptno和deltime四个字段,这四个字段都有非空约束。然后创建一个名为TrigEmpLogs的触发器,当从emp表中删除一条记录时,会将该记录的empno、empname、deptno和删除时间记录在emp_logs表中。需要注意的是,这个触发器只会在每次删除一条记录时触发,而不是在一次删除多条记录时触发。
阅读全文