Oracle学习笔记 part5
触发器(trigger)
触发器的结构同函数和过程,效果如字面意思
create or replace trigger update_sora_tips_trigger --指定在更新hls_test_sora表之后触发 after update on hls_test_sora; --指定每行更改均触发 for each row; begin --这里似乎不能写自定义函数 dbms_output.put_line('更新了数据'); end;
触发器的old和new
old和new是触发器特有的参数,分别代表了修改之前与之后数据库表该行的一个record值
create or replace trigger delete_bak_for_sora before delete on hls_test_sora for each row begin --每次删除hls_test_sora中的数据都会在hls_test_sora_bak中创建一个新的备份数据 insert into hls_test_sora_bak VALUES --old代表DML操作之前,改行的值,new则相反 (:old.test_id, :old.test_name, :old.test_age, :old.test_gender, :old.test_birthday); end;
序列(sequence)
这是我们最后一个小结,序列在前面的部分也有所运用,主要的功能是提供一个自定义的序列
--创建一个循环自增从1到10的序列 create sequence seq_one_to_ten increment by 1 start with 1 maxvalue 10 cycle cache 9; --tips:如果需要cycle循环,则要保证cache的值小于等于ceil(maxValue-start)/incremnet的值
使用序列
--seq_one_to_ten.nextval 表示序列指向下一个 --seq_one_to_ten.curval 表示序列指向当前 declare var number; begin for i in 1..100 loop dbms_print(seq_one_to_ten.curval||seq_one_to_ten.nextval); end loop; end;
更改和删除序列
--更改序列 alter sequence seq_one_to_ten increment by 2; --删除序列 drop sequence seq_one_to_ten

浙公网安备 33010602011771号