序列、触发器和存储过程三者之间有啥关系
生活随笔
收集整理的這篇文章主要介紹了
序列、触发器和存储过程三者之间有啥关系
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
序列、觸發(fā)器和存儲過程三者之間有啥關系?
好久沒用oracle數(shù)據庫了,今天復習了下oracle的序列、觸發(fā)器和存儲過程,之前對觸發(fā)器和存儲過程的概念有點模糊,今天來理理復習心得:存儲過程相當于打包好的sql語法,可以包含復雜的sql操作,在程序調用時只要執(zhí)行該存儲過程,一句話就可以完成復雜的數(shù)據庫操作.
觸發(fā)器是也是打包好的sql語法,是一種特殊類型的存儲過程,不由用戶直接調用。創(chuàng)建觸發(fā)器時會對其進行定義,以便在對特定表或列作特定類型的數(shù)據修改時執(zhí)行
另外:觸發(fā)器相對一般的存儲過程也多了一些在代碼編寫方面的不同,比如說CREATE TRIGGER 必須是批處理中的第一條語句,并且只能應用到一個表中等等。貌似必須要先創(chuàng)建序列才能再創(chuàng)建觸發(fā)器!
下面寫些序列、觸發(fā)器和存儲過程的代碼:
[sql] //創(chuàng)建序列 create sequence SEQ minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1 cache 20; 創(chuàng)建觸發(fā)器:[sql] //創(chuàng)建觸發(fā)器 create or replace trigger Tg before insert on user for each row declare begin select Seq.nextval into:New.ID from dual; end Tg; 創(chuàng)建存儲過程:[sql] //創(chuàng)建存儲過程 create or replace procedure Pro (v_name varchar2, v_pwd varchar2, v_role varchar2) is begin insert into user(ID,NAME,PASSWORD,ROLE) values(Seq.nextval,v_name,v_pwd,v_role);//user是表名 commit; end;總結
以上是生活随笔為你收集整理的序列、触发器和存储过程三者之间有啥关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 方立勋_30天掌握JavaWeb_JDB
- 下一篇: win7下更改为achi硬盘模式