Oracle Trigger¼òµ¥Ó÷¨
1. trigger ÊÇ×Ô¶¯Ìá½»µÄ£¬²»ÓÃCOMMIT£¬ROLLBACK
2. trigger×î´óΪ32K£¬Èç¹ûÓи´ÔÓµÄÓ¦ÓÿÉÒÔͨ¹ýÔÚTRIGGERÀïµ÷ÓÃPROCEDURE»òFUNCTIONÀ´ÊµÏÖ¡£
3. Óï·¨
CREATE OR REPLACE TRIGGER <trigger_name>
<BEFORE | AFTER> <ACTION>
ON <table_name>
DECLARE
<variable definitions>
BEGIN
<trigger_code>
EXCEPTION
<exception clauses>
END <trigger_name>;
/
Àý×Ó£¬triggerµ÷ÓÃsequence×Ô¶¯Ìí¼ÓÖ÷¼üid£º
create sequence pk_sys_dictionary
start with 1
increment by 1
nocache;
create or replace trigger tri_sys_dictionary
before insert on sys_dictionary
for each row
declare
begin
select pk_sys_dictionary.nextval into :new.id from dual;
end;
/
Ïà¹ØÎĵµ£º
select distinct id
from table t
where rownum < 10
order by t.id desc;
ÉÏÊöÓï¾äµÄ¹ýÂËÌõ¼þÖ´ÐÐ˳Ðò ÏÈwhere --->order by --->distinct
Èç¹ûÓÐgroup byµÄ»° group by ÔÚorder byÇ°ÃæµÄ ......
Oracle¶Ô±í×öÈ«±íɨÃèµÄʱºò
£¬»áɨÃèÍêHWMÒÔÏÂ
µÄÊý¾Ý¿é¡£Èç¹ûij¸ö±ídelete(delete²Ù×÷²»»á½µµÍ¸ßˮλ)ÁË´óÁ¿Êý¾Ý£¬ÄÇôÕâʱ¶Ô±í×öÈ«±íɨÃè¾Í»á×öºÜ¶àÎÞÓù¦£¬É¨ÃèÁËÒ»´ó¶ÑÊý¾Ý¿é£¬×îºó·¢ÏÖ¿éÀïÃæ¾ÓȻûÓÐÊý¾Ý¡£
ͨ³££¬ÔÚ¶Ô±í×öÁË´óÅúÁ¿delete²Ù×÷Ö®ºó£¬¾ÍÓ¦¸ÃÂíÉϽµµÍ±íµÄ¸ßˮ룬¿ÉÒÔʹÓÃshrink ÃüÁî»òÕßalter&n ......
ʲôÊÇsavepoint?
Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back.
¸øÄã¸öÀý×Ó
SQL> create table test (id number(7));
±íÒÑ´´½¨¡£
SQL> insert into test values (3);
ÒÑ´´½¨ 1 ÐС£
SQL> savepoint a;
±£´æ ......
ʲôÊǺϲ¢¶àÐÐ×Ö·û´®£¨Á¬½Ó×Ö·û´®£©ÄØ£¬ÀýÈ磺
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
in ÊǰÑÍâ±íºÍÄÚ±í×÷hash Á¬½Ó£¬¶øexistsÊǶÔÍâ±í×÷loopÑ»·£¬Ã¿´ÎloopÑ»·ÔÙ¶ÔÄÚ±í½øÐвéѯ¡£
Ò»Ö±ÒÔÀ´ÈÏΪexists±ÈinЧÂʸߵÄ˵·¨ÊDz»×¼È·µÄ¡£
Èç¹û²éѯµÄÁ½¸ö±í´óСÏ൱£¬ÄÇôÓÃinºÍexists²î±ð²»´ó¡£
in ÊǰÑÍâ±íºÍÄÚ±í×÷hash Á¬½Ó£¬¶øexistsÊǶÔÍâ±í×÷loopÑ»·£¬Ã¿´ÎloopÑ»·ÔÙ¶ÔÄÚ±í½øÐвéѯ¡£
Ò»Ö ......