You are on page 1of 6

Create create table Employee

les tables (IDE int primary key ,


Nom varchar(30),
Prenom varchar(30),
Salair Number(8,2),
Poste varchar(30)
)

create table Projet


(IDP int primary key ,
DDP Date,
DFP Date,
Titre Varchar(30),
IDE int
)
create table Part
(IDP int not null ,
IDE int not null ,
Nom varchar(30),
DDPE Date,
DFPE Date

Alter table projet


add constraint FKY_IDE Foreign key (IDE) references Employee (IDE)
Alter table projet
add constraint FKY_IDP Foreign key (IDP) references Projet(IDP)

Alter table part


add constraint PKY_IDE_IDP primary Key(IDP,IDE)

Alter table part

add constraint FKpart_IDE foreign key (IDE) references Employee (IDE)

Insert into Employee


values (5,'Mouhand','Ahmed',2700,'ING')
Insert into projet
values (17,date '2003-01-01',date '2004-01-01','DataCenter',5)

Test select max(salair),nom,prenom from employee


Select group by nom,prenom

select nom,prenom from employee


where salair =(select max (salair)from employee)

select distinct nom,prenom from employee


where salair >= all (select salair from employee )

trigger create or replace trigger NoDelete


for the before delete on employee for each row
delete begin
raise_application_error (-20001, 'Can not Delete Employee ('||:old.IDE
||')');
end;

delete from employee where nom='Mouhand'

Trigger //

create table vol (


Trigger IDV int primary key ,
update dateV date ,
table numberV number
automati )
cally
after create table reservation
insert in
another (
table IDR int primary key ,
dateR date,
idv int
)

insert into vol values (1,'',50)

create or replace trigger testupdate after insert on reservation for


each row
begin
update vol set numberV = numberV-1
where idv=:new.idv;
end;
insert into reservation values (1,'',1);

select * from vol

//

//
create or replace trigger testcolumn
trigger after update of salair on employee for each row
when
update begin
column
raise if (:New.salair < :Old.salair)
error then

raise_application_error(-20001,'on peut pas reduire');

end if ;

end;

update employee set salair=26


//

trigger
double create or replace trigger tr44
check
and before insert or update of salair on employee for each row
update if
values begin
not if (:new.salair < 2000)or(:new.salair is null) then
conform
if inserting then :new.salair := 2000; end if;

if updating then :new.salair := :old.salair; end if;

dbms_output.put_line('FS1 Blocks = ');

end if;

end;

Insert into Employee


values (10,'trigger','Insert',200,'ING')
update Employee set salair = 5500 where nom='trigger'

select * from employee

Connect connect
to sql
comman import sql file : @E:\db10ghrdonnees
d line
and commit;
import
file
View and
trigger Create or replace view Vu_Emp
for
insertion as

select No_employe,nom ,
prenom,titre,fonction,date_naissance,date_embauche,salaire,commissi
on

from Employes
where Rend_compte=2;

________

insert into vu_emp values (19,'test','test','test','test',sysdate-


16000,sysdate-8000,2222,null)
_______
create or replace trigger trg2
instead of insert
on vu_EMP
for each row
begin
insert into employes values
(:New.No_employe,2,:new.nom,:new.prenom,
:new.fonction,:new.titre,:new.date_naissance,:new.date_embauche,:ne
w.salaire,:new.commission);
end;

_____

Insert into vu_emp values (29,'test','test','test','test',sysdate-


1600,sysdate-9000,2222,200)

------
Privilege create user HRtest identified by sqrt004
s
alter user HRtest identified by sqrt004

drop user HRtest

drop user HRtest cascade

grant create table to HRtest

alter user HRtest quota 50m on system;

create or replace trigger HDT


Trriger before insert or update or delete
for users on employes
rather for each row
than HR
can not when (user!='HR')
manipula
te the begin
database if to_char(sysdate,'HH24:MI') not between '08:00' and '15:00'
less then then
8:00 and raise_application_error(-20001,'impossible de manipuler employes a
after ce mement');
15:00
end if;
end;

Test trigger

update HR.employes set nom='Updatetest' where no_employe=19

select * from HR.employes


Create or replace trigger Tr66
After drop or alter
On database
When (Ora_dict_obj_type =TABLE)
Begin
If (ora_dict_obj_type=TABLE)

Begin
If (ora_dict
Show Select trigger_name
trigger From user_triggers;
list
Alter trigger deux disable;
Alter trigger deux enable;

Enable trigger deux ;

Rename trigger
Alter trigger trg2 rename to trg3

You might also like