CREATE TABLE DEPT
(DEPTNO NUMBER(2 , 0) NOT NULL,
DNAME VARCHAR2(14),
LOC VARCHAR2(13),
MGR_NO NUMBER,
DEPT_TYPE NUMBER
);
CREATE TABLE EMP
(EMPNO NUMBER NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4 , 0),
HIREDATE DATE,
SAL NUMBER(7 , 2),
COMM NUMBER(7 , 2),
DEPTNO NUMBER(2 , 0) NOT NULL
);
CREATE TABLE PROJECT_TAB
(PRJ_LEVEL NUMBER,
PROJNO NUMBER,
RESP_DEPT NUMBER
);
CREATE TRIGGER LOG_SALARY_INCREASE
AFTER UPDATE OF MGR, EMPNO, ENAME, SAL,
HIREDATE, DEPTNO, JOB, COMM ON EMP
REFERENCING NEW AS NEW
OLD AS OLD
FOR EACH ROW
WHEN (NEW.Sal > 1000)
BEGIN
INSERT INTO Emp_log
(Emp_id, Log_date, New_salary, Action)
VALUES
(:NEW.Empno, SYSDATE, :NEW.SAL, 'NEW SAL');
END;
CREATE TRIGGER LOG_EMP_UPDATE
AFTER UPDATE OF EMPNO, HIREDATE, MGR, SAL,
ENAME, JOB, COMM, DEPTNO ON EMP
REFERENCING NEW AS NEW
OLD AS OLD
FOR EACH STATEMENT
BEGIN
INSERT INTO Emp_log
(Log_date, Action)
VALUES
(SYSDATE, 'emp COMMISSIONS CHANGED');
END;
|
CREATE TABLE DEPT
(DEPTNO SMALLINT NOT NULL,
DNAME VARCHAR(14),
LOC VARCHAR(13),
MGR_NO DECFLOAT(16),
DEPT_TYPE DECFLOAT(16)
);
CREATE TABLE EMP
(EMPNO DECFLOAT(16) NOT NULL,
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR SMALLINT,
HIREDATE TIMESTAMP,
SAL DECIMAL(7 , 2),
COMM DECIMAL(7 , 2),
DEPTNO SMALLINT NOT NULL
);
CREATE TABLE PROJECT_TAB
(PRJ_LEVEL DECFLOAT(16),
PROJNO DECFLOAT(16),
RESP_DEPT DECFLOAT(16)
);
CREATE TRIGGER LOG_SALARY_INCREASE
AFTER UPDATE ON EMP
REFERENCING NEW AS NEW
OLD AS OLD
FOR EACH ROW
WHEN (NEW.Sal > 1000)
BEGIN
INSERT INTO Emp_log
(Emp_id, Log_date, New_salary, Action)
VALUES
(:NEW.Empno, SYSDATE, :NEW.SAL, 'NEW SAL');
END;
CREATE TRIGGER LOG_EMP_UPDATE
AFTER UPDATE OF EMPNO, HIREDATE, MGR, SAL,
ENAME, JOB, COMM, DEPTNO ON EMP
REFERENCING NEW AS NEW
OLD AS OLD
FOR EACH STATEMENT
BEGIN
INSERT INTO Emp_log
(Log_date, Action)
VALUES
(SYSDATE, 'emp COMMISSIONS CHANGED');
END;
|
CREATE TABLE letter
(x INT NOT NULL PRIMARY KEY,
y INT
);
CREATE TABLE columns
(col1 INT REFERENCES letter,
col2 INT CHECK
(col2 > 0)
);
CREATE INDEX columns_idx
ON columns(col2, col1);
CREATE TRIGGER trig1
BEFORE INSERT OR UPDATE
OF col1, col2 ON columns
FOR EACH ROW
BEGIN
IF
( :new.col1 < :new.col2 )
THEN
raise_application_error(-20001,
'Invalid operation col1 cannot be
less then col2');
END IF;
END;
|
CREATE TABLE LETTER
(X DECFLOAT(34) NOT NULL PRIMARY KEY,
Y DECFLOAT(34)
);
CREATE TABLE COLUMNS
(COL1 DECFLOAT(34) REFERENCES LETTER,
COL2 DECFLOAT(34) CHECK
(COL2 > 0)
);
CREATE INDEX COLUMNS_IDX
ON COLUMNS(COL2, COL1);
CREATE TRIGGER TRIG1
BEFORE INSERT
OF COL1, COL2 ON COLUMNS
FOR EACH ROW
BEGIN IF
( :NEW.COL1 < :NEW.COL2 )
THEN
RAISE_APPLICATION_ERROR(-20001,
'Invalid operation col1 cannot be
less then col2');
END IF;
END;
|