当前位置: 代码迷 >> Oracle开发 >> 高手帮小弟我写个oracle的出发器 ~
  详细解决方案

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

热度:87   发布时间:2016-04-24 07:43:49.0
高手帮我写个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>
  相关解决方案