Yes B_ID NUMBER Yes  (PK)               
表一
No USERNAME VARCHAR2(4000)
No B_NAME VARCHAR2(40) No
No B_GENDER VARCHAR2(40)
No B_PERMIT BLOB No
No B_TEL VARCHAR2(40) No
No B_QQ VARCHAR2(40) No
No B_EMAIL VARCHAR2(40) No
No B_PERMIT2 VARCHAR2(4000) 表二
Yes H_ID NUMBER Yes  (pk)No
B_ID NUMBER No    (FK)
No H_NAME VARCHAR2(400) No
No H_PRIVENCE VARCHAR2(40) No
No H_CITY VARCHAR2(40) No
No H_ADDRESS VARCHAR2(4000) No我的表里主键都是设置的number类型的自动增一,怎样实习其级联更新啊?当往表一插入数据时,表二的B_ID自动添加,在网上查了一下,好像是要写个trigger,谢谢贴个代码,还有其他的办法吗?谢谢

解决方案 »

  1.   

    ORACLE不支持级联更新,必须自己编码来实现。
      

  2.   

    看一下: create table t(pk number primary key,...); 
    create sequence t_seq; 
    create trigger t_trigger before insert on t for each row 
    begin 
      select t_seq.nextval into :new.pk from dual; 
    end; 
      

  3.   

    试一下
    表二里你的number类型的H_ID 自动增一应该创建了一个序列,假设名为hid,
    以下代码放在表二的触发器里
    declear
    hno number:=-1;
    select B_ID into hno from 表一 where B_ID=:new.B_ID;
    update 表二 set B_ID:=bno where H_ID=hid.nextval;
    ......