Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ORACLE PL/SQL ´¥·¢Æ÷(trigger)ѧϰ±Ê¼Ç

1¡¢´¥·¢Æ÷µÄ¸ÅÄî
´¥·¢Æ÷Ò²ÊÇÒ»ÖÖ´øÃûµÄPL/SQL¿é¡£´¥·¢Æ÷ÀàËÆÓÚ¹ý³ÌºÍº¯Êý£¬ÒòΪËüÃǶ¼ÊÇÓµÓÐÉùÃ÷¡¢Ö´ÐкÍÒì³£´¦Àí¹ý³ÌµÄ´øÃûPL/SQL¿é¡£Óë°üÀàËÆ£¬´¥·¢Æ÷±ØÐë´æ´¢ÔÚÊý¾Ý¿âÖв¢ÇÒ²»Äܱ»¿é½øÐб¾µØ»¯ÉùÃ÷¡£
¶ÔÓÚ´¥·¢Æ÷¶øÑÔ£¬µ±´¥·¢Ê¼þ·¢ÉúµÄʱºò¾Í»áÏÔʽµØÖ´Ðиô¥·¢Æ÷£¬²¢ÇÒ´¥·¢Æ÷²»½ÓÊܲÎÊý¡£
 
´´½¨´¥·¢Æ÷µÄÓï·¨ÈçÏÂ
 
 
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF} triggering_event
[referencing_clause]
[WHEN trigger_condition]
[FOR EACH ROW]
Trigger_body;
  
ÆäÖÐreferencing_clause×Ó¾äµÄÓÃ;ÊÇͨ¹ýÒ»¸ö²»Í¬µÄÃû³Æ£¬ÒýÓõ±Ç°ÕýÔÚ±»¸üеļǼÐÐÖеÄÊý¾Ý¡£WHEN×Ó¾äÖеÄtrigger_condition—Èç¹û³öÏÖ—¾ÍÓ¦¸ÃÊ×ÏÈÖ´ÐÐÅжϣ¬Ö»Óе±Õâ¸öÌõ¼þÖµÎªÕæµÄʱºò£¬²Å»áÖ´Ðд¥·¢Æ÷µÄÖ÷Ìå´úÂë¡£
 
 
2¡¢DML´¥·¢Æ÷µÄ¼¤»î˳Ðò
1£©Ö´ÐÐbeforeÓï¾ä¼¶´¥·¢Æ÷—Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
2£©¶ÔÊܸÃÓï¾äÓ°ÏìµÄÿһÐмǼ
Ö´ÐÐbeforeÐм¶´¥·¢Æ÷—Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
Ö´ÐиÃÓï¾ä±¾Éí
Ö´ÐÐafterÐм¶´¥·¢Æ÷--Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
3£©Ö´ÐÐafterÓï¾ä¼¶´¥·¢Æ÷--Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
 
ͬһÖÖÀàÐ͵Ĵ¥·¢Æ÷µÄµã»ð´ÎÐòûÓо­¹ý¶¨Òå¡£Èç¹û¸Ã´ÎÐòºÜÖØÒªµÄ»°£¬ÄÇô½¨Ò齫ËùÓÐÕâЩ²Ù×÷×éºÏµ½Ò»¸ö´¥·¢Æ÷µ±ÖС£
 
3¡¢Ðм¶´¥·¢Æ÷ÖеĹØÁª±êʶ·û
´¥·¢Æ÷µÄ¼¤»îÓï¾äÿ´¦ÀíÒ»ÐÐÊý¾Ý£¬Ðм¶´¥·¢Æ÷¾Í»á¼¤»îÒ»´Î¡£¿ÉÒÔÔÚÕâÖÖÐм¶´¥·¢Æ÷ÄÚ²¿£¬·ÃÎÊÕý±»´¦ÀíµÄ¼Ç¼ÐÐÖеÄÊý¾Ý¡£ÕâÊÇͨ¹ýÁ½¸ö¹ØÁª±êʶ·û--:oldºÍ:new—ʵÏֵġ£¹ØÁª±êʶ·ûÒ²ÊÇPL/SQLµÄÒ»ÖÖÌØÊâµÄ°ó¶¨±äÁ¿¡£±êʶ·ûÇ°ÃæµÄðºÅ£¬¼È˵Ã÷Õâ¶þÕß¶¼Êǰ󶨱äÁ¿£¬Í¬Ê±Ò²ËµÃ÷ËüÃDz»ÊÇÒ»°ãµÄPL/SQL±äÁ¿¡£PL/SQL±àÒëÆ÷»á½«ËüÃÇ¿´×÷ÏÂÃæÕâ¸öÀàÐ͵ļǼ£º
 
Triggering_table%ROWTYPE
 
ÆäÖÐtriggering_tableÊÇÔÚÆäÉ϶¨Òå´¥·¢Æ÷µÄ±íÃû¡£ÓÚÊÇ£¬ÏÂÃæÕâÖÖÒýÓÃ
 
:new.field
 
¾ÍÖ»Óе±ÆäÖеÄfieldÊǸô¥·¢±íÖеÄ×Ö¶ÎÃûʱ²Å»áÓÐЧ¡£
 
´¥·¢Óï¾ä
:old
:new
INSERT
䶨Òå—ËùÓÐ×ֶξùΪNULL
´¥·¢Óï¾äÍê³ÉµÄʱºò£¬Òª²åÈëµÄÖµ
UPDATE
¸üÐÂÒÔǰÏàÓ¦¼Ç¼ÐеÄԭʼֵ
´¥·¢Óï¾äÍê³ÉµÄʱºò£¬Òª¸üеÄÖµ
DELETE
ɾ³ýÒÔǰÏàÓ¦¼Ç¼ÐеÄԭʼֵ
䶨Òå—ËùÓÐ×ֶξùΪNULL
 
×¢Ò⣺INSERTÓï¾äÉÏûÓж¨Òå:old±êʶ·û£¬DELETEÓï¾äÉÏҲûÓж¨Òå:new±êʶ·û¡£Èç¹ûÔÙINSERTÓï¾äÉ


Ïà¹ØÎĵµ£º

sql ÿ×éÊý¾Ýֻȡǰ¼¸ÌõÊý¾ÝµÄд·¨

select *
  from (select row_number() over(partition by t.type order by date desc) rn,
               t.*
          from ±íÃû t)
 where rn <= 2;
typeÒª·ÖµÄÀà
date ÅÅÐò ......

sql Ö´ÐÐ˳Ðò

SQL SelectÓï¾äÍêÕûµÄÖ´ÐÐ˳Ðò
2009-06-02 15:57
SQL SelectÓï¾äÍêÕûµÄÖ´ÐÐ˳Ðò£º1¡¢from×Ó¾ä×é×°À´×Ô²»Í¬Êý¾ÝÔ´µÄÊý¾Ý£»2¡¢where×Ó¾ä»ùÓÚÖ¸¶¨µÄÌõ¼þ¶Ô¼Ç¼ÐнøÐÐɸѡ£»3¡¢group by×Ӿ佫Êý¾Ý»®·ÖΪ¶à¸ö·Ö×飻4¡¢Ê¹Óþۼ¯º¯Êý½øÐмÆË㣻5¡¢Ê¹ÓÃhaving×Ó¾äɸѡ·Ö×飻
ÒÔϽáÂÛÊÇͨ¹ýÔÚSql Server2000ÉϵÄʵÑéµÃ³öµÄ½áÂÛ£¬ ......

Oracle PL/SQL¿é½á¹¹ºÍ×é³ÉÔªËØÑ§Ï°±Ê¼Ç(Ò»)

Ò»£¬PL/SQL¿éµÄ½á¹¹ºÍ×é³ÉÔªËØ
PL/SQL³ÌÐòÓÉÉùÃ÷²¿·Ö£¬Ö´Ðв¿·Ö£¬Òì³£´¦Àí²¿·ÖÈý¸ö²¿·Ö×é³É¡£½á¹¹ÈçÏ£º
DECLARE
/*ÉùÃ÷²¿·Ö£ºÔÚ´ËÉùÃ÷PL/SQL±äÁ¿£¬ÀàÐͼ°Óα꣬ÒÔ¼°¾Ö²¿µÄ´æ´¢¹ý³ÌºÍº¯Êý*/
BEGIN
/*Ö´Ðв¿·Ö£º¹ý³Ì¼°sqlÓï¾ä£¬³ÌÐòÖ÷Òª²¿·Ö£¬ÊDZØÐëµÄ*/
EXCEPTION
/*Òì³£´¦Àí²¿·Ö£º´íÎó´¦Àí*/
END
 
PL/SQL¿ ......

06—PL/SQL±à³Ì

PL/SQL: OracleÖеÄSQL¹ý³Ì»¯±à³ÌÓïÑÔ
1. PL/SQL³ÌÐòÊÇÓÉ¿é½á¹¹¹¹³É£¬¸ñʽÈçÏ£º
  [DECLARE
   --ÉùÃ÷²¿·Ö
¡¡]
  BEGIN
   -- Ö÷Ìå
   [EXCEPTION
     -- Òì³£´¦Àí¿é
   ]
  END;
  /  --¿éµÄ½áÊø
2.±äÁ¿
¼òµ¥±äÁ¿£º ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ