表A的主键a_id,
表B的主键b_id,外键a_id,
A表的Sequence SA,
B表的Sequence SB,
问题:怎么把俩个表自增长关联起来呢,在插入的时候俩表保持同步,
望各位JJGG给点建议,兄弟不胜感激.

解决方案 »

  1.   

    很简单啊,A表做个触发器啊,在插入数据后,直接写b表,B表的b_ID就是a_id
    只要用一个Sequence
      

  2.   

    提供一个例子,自己根据它再写一个,有助你理解触发器--实例4---------创建触发器,利用视图插入数据--创建表---------------
    CREATE TABLE tab1 (tid NUMBER(4) PRIMARY KEY,tname VARCHAR2(20),tage NUMBER(2));
    CREATE TABLE tab2 (tid NUMBER(4),ttel VARCHAR2(15),tadr VARCHAR2(30));
    --插入数据
    INSERT INTO tab1 VALUES(101,'zhao',22);
    INSERT INTO tab1 VALUES(102,'yang',20);
    INSERT INTO tab2 VALUES(101,'13761512841','AnHuiSuZhou');
    INSERT INTO tab2 VALUES(102,'13563258514','AnHuiSuZhou');
    --创建视图连接两张表
    CREATE VIEW tab_view AS SELECT tab1.tid,tname,ttel,tadr FROM tab1,tab2  WHERE tab1.tid = tab2.tid;
    --创建触发器
    CREATE OR REPLACE TRIGGER tab_triggerINSTEAD OF INSERT ON tab_viewBEGIN INSERT INTO tab1(tid,tname) VALUES(:new.tid,:new.tname);INSERT INTO tab2(ttel,tadr) VALUES(:new.ttel,:new.tadr);
    END;/
    --现在就可以利用视图插入数据
    INSERT INTO tab_view VALUES(105,'zhaoyang','13886681288','beijing');
    --查看效果
    SELECT * FROM tab_view;
      

  3.   

    上面是未测试版
    经本人测试版./* Formatted on 2008/04/07 14:43 (Formatter Plus v4.8.8) */
    --实例4---------创建触发器,利用视图插入数据-----
    --创建表----------
    CREATE TABLE tab1 (tid NUMBER(4) PRIMARY KEY,tname VARCHAR2(20),tage NUMBER(2));
    CREATE TABLE tab2 (tid NUMBER(4),ttel VARCHAR2(15),tadr VARCHAR2(30));
    --插入数据
    INSERT INTO tab1 VALUES(101,'SYU',22);
    INSERT INTO tab1 VALUES(102,'EHOKO',20);
    INSERT INTO tab2 VALUES(101,'13761512841','SHANGHAI');
    INSERT INTO tab2 VALUES(102,'13563258514','SHANGHAI');
    --创建视图连接两张表
    CREATE VIEW tab_view AS SELECT tab1.tid,tname,ttel,tadr FROM tab1,tab2  WHERE tab1.tid = tab2.tid;
    --创建触发器
    CREATE OR REPLACE TRIGGER tab_trigger 
    INSTEAD OF INSERT ON tab_view 
    BEGIN 
    INSERT INTO tab1(tid,tname) VALUES(:new.tid,:new.tname);
    INSERT INTO tab2(tid,ttel,tadr) VALUES(:new.tid,:new.ttel,:new.tadr);
    END;/
    --现在就可以利用视图插入数据
    INSERT INTO tab_view VALUES(105,'SYUEHOKO','1388858514','beijing');
    COMMIT;
    --查看效果
    SELECT * FROM tab_view;
    select * from tab1;
    select * from tab2;