SQL> create or replace trigger update_price_of_parts 2 after update of price on parts 3 for each row 4 begin 5 insert into parts_log values 6 (:old.pno,user,sysdate,:old.price,:new.price); 7 end; 8 / 想问下为什么在old.pno前面加上冒号?
我是这么认为的:我觉得跟性能关系不是很大。当你需要使用更新前的字段值时,你可以通过这种方式来访问。当然 你完全可以不用:old或者是:new。你完全可以通过reference的关键字自己定义代表这两个词的变量名称,比如: create or replace trigger tri_test before insert on table_test referencing old as name_old,new as new_name . . .
在这里:old表示更新前的值,:new代表更新后的值
create or replace trigger tri_test
before insert
on table_test
referencing old as name_old,new as new_name
.
.
.
LZ既然问这里的冒号代表什么意思 那#1当然就回答你这代表绑定变量喽LZ你所说的绑定变量提高性能是针对其他情况下而言的
比如说在SQL语句中适当的使用绑定变量可以减少PARSE
固定格式
:old 旧值 :new 新值!
绑定变量的用法,和sqlplus里的用法variable x varchar2(100);
exec :x := 'test';
selecct :x from dual;用法类似