最近我人品比较差。什么代码都出bug各位神人帮帮忙。。
有以下表及字段
A_t:a_id
B_t:b_id
c_t:a_id,b_id
现要写一个触发器,当我对B_t进行插入时,如何将C_t中对应的a_id插入A_t?
谢谢各位~~~~

解决方案 »

  1.   

    create or replace trigger mytrigger
    before insert on B_t
    begin
        select a_id into :new.b_id from A_t;
    end;
      

  2.   

    写错了,这压根都不用写触发器.  你直接Insert into B_t(id) select id from A_t
      

  3.   

    不对,需要写触发器,楼主是想往第三张表c_t里插数据。而且执行insert语句是手工的,触发器是自动的。
      

  4.   


    对的create or replace trigger groupToUser
      after insert on B_t
      for each row
    declare
      DID NUMBER(8);
      cursor cur_offer is SELECT userid FROM C_t WHERE C_t.b_id = :NEW.b_id;BEGIN
         open cur_offer;
           loop
               fetch cur_offer into DID;
               INSERT INTO A_t(a_id) VALUES(DID);   
           end loop;
         close cur_offer;
         commit;
    end groupToUser;
    这是我写的触发器但是一执行就死机
      

  5.   

    create or replace trigger tri_b_t
    after insert 
    on b_t
    REFERENCING OLD AS OLD NEW AS NEW
    for each row
    declare
    begin
      insert into a_t select c.a_id from c_t c where c.b_id = :new.b_id;
    end;
      

  6.   

    CREATE OR REPLACE TRIGGER TG_INSERT
      AFTER INSERT ON B_T
      FOR EACH ROW
    BEGIN
      INSERT INTO A_T
        SELECT A_ID FROM C_T WHERE B_ID = :NEW.B_ID;
      COMMIT;
    END;
      

  7.   

    一列和多列没什么区别 语句格式是一样的 
    insert into table1 (col1,col2...) select col1,col2... from table2
      

  8.   

    CREATE OR REPLACE TRIGGER tai_ct
    AFTER INSERT 
    ON c_t
    REFERENCING NEW AS new_value
    BEGIN
    INSERT INTO a_t VALUES(SELECT a_id FROM c_t WHERE b_id=:new_value.b_id);
    COMMIT;
    END;
      

  9.   

    CREATE OR REPLACE TRIGGER tri_b_t
    AFTER INSERT ON b_t
    for each ROW
    declare
      DID NUMBER(8);
      cursor cur_offer is SELECT a_id FROM c_t WHERE b_id=:NEW.b_id;
    BEGIN
         open cur_offer;
           LOOP
               fetch cur_offer into DID;
               exit when cur_offer%notfound; 
               INSERT INTO A_t(a_id) VALUES(DID);  
           
           end loop;
         close cur_offer;
    END tri_b_t;
    /
    这个才是我想要的我做了两个晚上总算出了啦谢谢大家给我的思路~~~~