oracleÖд¥·¢Æ÷
´¥·¢Æ÷µÄÀàÐÍÓÐ:
¡¡¡¡´¥·¢Æ÷ÀàÐÍ£º
¡¡¡¡1¡¢ Óï¾ä´¥·¢Æ÷
¡¡¡¡2¡¢ Ðд¥·¢Æ÷
¡¡¡¡3¡¢INSTEAD OF´¥·¢
¡¡¡¡4¡¢ ϵͳÌõ¼þ´¥·¢Æ÷
¡¡¡¡5¡¢ Óû§Ê¼þ´¥·¢Æ÷
Óï¾ä¼¶´¥·¢Æ÷.(Óï¾ä¼¶´¥·¢Æ÷¶Ôÿ¸öDMLÓï¾äÖ´ÐÐÒ»´Î)
ÊÇÔÚ±íÉÏ»òÕßijЩÇé¿öϵÄÊÓͼÉÏÖ´ÐеÄÌØ¶¨Óï¾ä»òÕßÓï¾ä×éÉϵĴ¥·¢Æ÷¡£Äܹ»ÓëINSERT¡¢UPDATE¡¢DELETE»òÕß×éºÏÉϽøÐйØÁª¡£µ«ÊÇÎÞÂÛʹÓÃʲôÑùµÄ×éºÏ£¬¸÷¸öÓï¾ä´¥·¢Æ÷¶¼Ö»»áÕë¶ÔÖ¸¶¨Óï¾ä¼¤»îÒ»´Î¡£±ÈÈ磬ÎÞÂÛupdate¶àÉÙÐУ¬Ò²Ö»»áµ÷ÓÃÒ»´ÎupdateÓï¾ä´¥·¢Æ÷¡£
´úÂë
create or replace trigger tri_test
¡¡¡¡after insert or update or delete on test
¡¡¡¡begin
dbms_output.put_line('dddd');
end;
dmlÊÇÄܹ»ÅúÁ¿´¦ÀíµÄ ËùÒÔ :old :newÊDz»ÔÊÐíÔÚÕâÀïÓÃµÄ Ö»ÓÐijһ¸öÐмǼ²ÅÓÐ
Ðм¶´¥·¢Æ÷.(Ðм¶´¥·¢Æ÷¶ÔDMLÓï¾äÓ°ÏìµÄÿ¸öÐÐÖ´ÐÐÒ»´Î)
¡¡create or replace trigger tri_test--´´½¨´¥·¢Æ÷
¡¡¡¡before insert or update of sid on test
¡¡¡¡for each row--´¥·¢Ã¿Ò»ÐÐ
¡¡¡¡begin
¡¡¡¡dbms_output.put_line(:new.id); --old Ö»ÓÐɾ³ýÓëÐ޸ĵÄʱºòÓÐ
¡¡¡¡end;
instead of´¥·¢Æ÷(´Ë´¥·¢Æ÷ÊÇÔÚÊÓͼÉ϶ø²»ÊÇÔÚ±íÉ϶¨ÒåµÄ´¥·¢Æ÷,ËüÊÇÓÃÀ´Ìæ»»ËùʹÓÃʵ¼ÊÓï¾äµÄ´¥·¢Æ÷.)
Ïà¹ØÎĵµ£º
ÉÏһƪÎÄÕÂдÁËÒ»¸öoracleµÄÒ»¸öÐÐתÁеÄÀý×Ó£¬ÀïÃæÓõ½ÁËoracleÖÐÖØÒªµÄº¯Êý decode,ÕâÆªÎÄÕ¾ÍÀ´¼òµ¥µÄѧϰÕâ¸öº¯Êý
DECODEº¯ÊýºÍÎÒÃÇÓïÑԽṹÖеÄÌõ¼þÓï¾ä£¨IF£©ÏàËÆ¡£Ëü½«ÊäÈëÊýÖµÓ뺯ÊýÖеIJÎÊýÁбíÏà±È½Ï£¬¸ù¾ÝÊäÈëÖµ·µ»ØÒ»¸ö¶ÔÓ¦Öµ¡£
DECODEº¯ÊýÏ൱ÓÚÒ»Ìõ¼þÓï¾ä(IF).Ëü½«ÊäÈëÊýÖµÓ뺯ÊýÖеIJÎÊýÁбíÏà±È½Ï£¬¸ù¾ÝÊ ......
create database link user_auth
¡¡¡¡ connect to user_auth identified by user_auth
¡¡¡¡ using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.236)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=develop1)))'; ......
create table a(
id number primary key,
name varchar2(20)
);
create table b(
id number,
name varchar2(20),
aid number references a(id)
);
insert into a values(1,'1');
insert into b values(1,'aaa',1);
Èç¹û create view vi_new as select * from a
ÔÚÊÓͼvi_new ÉÏ×öÈκΠdml²Ù×÷¶¼»áÐÞ¸Ä ¶ÔÓ¦µÄ ......