/*
pl/sql觸發器知識點
行級觸發器: 每更新 employees 表中的一條記錄, 都會導致觸發器執行
語句級觸發器: 乙個 update/delete/insert 語句只使觸發器執行一次
--乙個helloworld級別的觸發器
create or replace trigger hello_trigger
after update on employees
--for each row --for each row不寫的時候是語句級觸發器
begin
dbms_output.put_line('hello world');
end;
create or replace trigger hello_trigger2
after update on employees
for each row --寫for each row的時候是行級觸發器
begin
dbms_output.put_line('hello');
end;
--然後執行:
update employees set salary = salary + 1000;
--觸發器的 helloworld: 編寫乙個觸發器, 在向 emp10 表中插入記錄時, 列印 'helloworld'
create or replace trigger hello_trigger3
after insert on emp10
begin
dbms_output.put_line('helloworld!!!!!');
end;
--然後執行:
insert into emp10 values (102, 'lisi', '[email protected]', 26000);
-- 行級觸發器: 每更新 employees 表中的一條記錄, 都會導致觸發器執行
-- 語句級觸發器: 乙個 update/delete/insert 語句只使觸發器執行一次
--使用 :new, :old 修飾符
-- :new(操作完成後列的值) :old(操作完成前列的值)
create or replace trigger hello_trigger4
after update on emp10
for each row
begin
dbms_output.put_line('更新前的薪水' || :old.salary || '更新後的薪水' || :new.salary);
end;
update emp10 set salary = salary + 100;
--編寫乙個觸發器, 在對 emp99 記錄進行刪除的時候, 在 emp99_bak 表中備份對應的記錄
create table emp99
asselect employee_id, salary from employees
where department_id = 80 ;
select * from emp99
create table emp99_bak
asselect employee_id, salary from employees
where 666 = 888 ;
select * from emp99_bak
create or replace trigger delete_emp99
before delete on emp99
for each row
begin
insert into emp99_bak values(:old.employee_id ,:old.salary);
dbms_output.put_line('刪除了emp99表中employee_id=' || :old.employee_id || '的資料!!!');
end;
--刪除emp99表中的資料
delete from emp99 where employee_id in (145, 146, 147, 148, 149);
--刪除emp99表中的資料
delete from emp99
where employee_id >= 150
and employee_id <= 170
select * from emp99
select * from emp99_bak
oracle筆記 觸發器
1.禁止員工在休息日改變雇員資訊 create or replace trigger tri emp before insert or update or delete on emp begin if to char sysdate day nls date language american in...
oracle 觸發器筆記
什麼是觸發器 觸發器是乙個特殊的儲存過程,儲存過程和儲存函式是完成特定功能的乙個pl sql程式,觸發器也是乙個pl sql程式 觸發器的作用 每當乙個特定的資料庫操作語句 insert,update,delete 在指定的表上發出時,oracle自動地執行觸發器中定義的語句序列 觸發器的應用場景 ...
oracle筆記九(觸發器)
觸發器 分類 a dml觸發器 b 替代觸發器 c 系統觸發器 建立dml觸發器 create or replace trigger tri delemp before delete on scott.emp for each row begin insert into emp history em...