Sie sind auf Seite 1von 2

tableS

-----
emp(empno,ename,job,sal,deptid)
1(101,TANYA,ASSISTANT PROFESSOR,20000,10)

DEpt(deptno,dname)
1(08,civil)
2(10,csed)

emp_log(empid,user_name,change_date,operation,old_sal,new_sal)
***************
sql> update dept
set deptid=10
where dname='csed';

sql> insert into emp values(101,'palika','lecturer',20000,09);


OR
sql> update EMP
set ename='tanya',job='assistant professor'
where empno=101;

********
create or replace trigger emp_tri
before insert or update of Ename,job
on emp
for each row
begin
:new.ename:= upper(:new.ename);
:new.job:=upper(:new.job);
end;
*****
sql>/
trigger created
****************
sql>/
trigger created with compilation error
sql>show errors

insert :new
update :new :old
delete :old

****************************
ques 2:

sql> update dept


set deptid=10
where dname='csed';

create or replace trigger emp_dept_tri


after update of deptid on dept
for each row
begin
update emp
set deptno=:new.deptid
where deptno=:old.deptid;
end;

****************
ques3:

emp_log(empid,user_name,change_date,operation,old_sal,new_sal)
1(102,system,sysdate,insert,,20000);
2(101,anjali,sysdate,update,20000,50000);
3(102,himashi,sysdate,delete,20000);

sql>insert into emp values(102,'palika','lecturer,20000,10);


sql>update emp set sal=50000 where empno=101;
sql>delete from emp where empno=102;
sql>insert into emp values(103,'anju','A.P',10000,10);

inserting
updating
deleting

create or replace trigger log_record


after insert or update or delete on emp
for each row
begin
if inserting then
insert into emp_log(empid,user_name,change_date,operation,new_sal) values
(:new.empno,'system','sysdate','insert',:new.sal);
elsif updating then
insert into emp_log(empid,user_name,change_date,operation,old_sal,new_sal) values
(:old.empno,anjali,sysdate,update,:old.sal,:new.sal);
else
insert into emp_log(empid,user_name,change_date,operation,old_sal) values
(:old.empno,himashi,sysdate,delete,:old.sal);
end if;
end;

***************
emp(empno,ename,job,sal,deptid)
1(101,TANYA,ASSISTANT PROFESSOR,20000,10)
2(102,palika,lectuer,20000,10)
3(103,anita,lectuer,20000,10)
sql> insert into emp (ename,job,sal,deptid) values
('palika','lecturer',20000,10);
sql> insert into emp (ename,job,sal,deptid) values
('anita','lecturer',20000,10);

create or replace trigger emp_pk


before insert on emp
for each row
declare
last_val number;
latest_val number;
begin
select NVL(max(empno,100)) into last_val from emp;
latest_val:=last_val+1;
:new.empno:=latest_val;
end;

Das könnte Ihnen auch gefallen