读书人

高手帮小弟我写个oracle的出发器 ~

发布时间: 2012-01-20 18:53:53 作者: rapoo

高手帮我写个oracle的出发器 在线等~~~
create table BK_DEPT
(
DEPTID NUMBER not null,
DEPTNAME VARCHAR2(50),
DEPTNUMBER NUMBER,
MEMO1 VARCHAR2(100),
MEMO2 VARCHAR2(1000),
MEMO3 NUMBER
)


create table BK_ADMINUSER
(
USERID NUMBER not null,
USERNAME VARCHAR2(50),
USERPASSWORD VARCHAR2(20),
USERPHONE VARCHAR2(20),
USERVIEWNAME VARCHAR2(20),
USERSDEPTNUMBER NUMBER,
USERSDEPTNAME VARCHAR2(50),
USERCREATETIME VARCHAR2(50),
USERLOGINTIME VARCHAR2(50),
USEREXITTIME VARCHAR2(50),
USERTYPENUM VARCHAR2(500),
USERIP VARCHAR2(50),

)
当BK_DEPT表里的部门名修改后 根据DEPTNUMBER =USERSDEPTNUMBER 同时修改BK_ADMINUSER表的USERSDEPTNAME



[解决办法]

SQL code
SQL> create   table   BK_DEPT  2  (  3      DEPTID           NUMBER   not   null,  4      DEPTNAME       VARCHAR2(50),  5      DEPTNUMBER   NUMBER,  6      MEMO1             VARCHAR2(100),  7      MEMO2             VARCHAR2(1000),  8      MEMO3             NUMBER  9  );Table createdSQL> create   table   BK_ADMINUSER  2  (  3      USERID                   NUMBER   not   null,  4      USERNAME               VARCHAR2(50),  5      USERPASSWORD       VARCHAR2(20),  6      USERPHONE             VARCHAR2(20),  7      USERVIEWNAME       VARCHAR2(20),  8      USERSDEPTNUMBER         NUMBER,  9      USERSDEPTNAME     VARCHAR2(50), 10      USERCREATETIME   VARCHAR2(50), 11      USERLOGINTIME     VARCHAR2(50), 12      USEREXITTIME       VARCHAR2(50), 13      USERTYPENUM         VARCHAR2(500), 14      USERIP                   VARCHAR2(50) 15  );Table createdSQL> INSERT INTO BK_DEPT SELECT 1,'DEPT',8888,'A','B',88 FROM DUAL;1 row insertedSQL> INSERT INTO BK_ADMINUSER(USERID,USERSDEPTNUMBER,USERSDEPTNAME) SELECT 1,8888,'HAHA' FROM DUAL;1 row insertedSQL> SELECT USERID,USERSDEPTNUMBER,USERSDEPTNAME FROM BK_ADMINUSER;    USERID USERSDEPTNUMBER USERSDEPTNAME---------- --------------- --------------------------------------------------         1            8888 HAHASQL> CREATE OR REPLACE TRIGGER TREATE_DATA  2    AFTER UPDATE ON BK_DEPT FOR EACH ROW  3  BEGIN  4    UPDATE BK_ADMINUSER SET BK_ADMINUSER.USERSDEPTNAME = :NEW.DEPTNAME  5    WHERE BK_ADMINUSER.USERSDEPTNUMBER = :NEW.DEPTNUMBER;  6  END;  7  /Trigger createdSQL> UPDATE BK_DEPT SET DEPTNAME = 'TEST';1 row updatedSQL> SELECT USERID,USERSDEPTNUMBER,USERSDEPTNAME FROM BK_ADMINUSER;    USERID USERSDEPTNUMBER USERSDEPTNAME---------- --------------- --------------------------------------------------         1            8888 TESTSQL> 

读书人网 >oracle

热点推荐