在c#中 点击表单上的提交按钮 同时向三个表中添加数据oracle存储过程怎么写啊
当我向mdsets_bbs_users中插入user_id时 mdsets_bbs_favorite表和mdsets_bbs_plate_boss 表也要插入这个user_id 怎么弄啊 ,user_id是自增的三个表分别为
--mdsets_bbs_users 表
create  table mdsets_bbs_users
(
  user_id varchar2(8) not null, --pk
  user_name varchar2(45) ,--pk
  pass_word varchar2(20) ,
  email varchar2(30) ,
  name varchar2(30) ,
  phone_no varchar2(20)  ,
  person_info varchar2(900) ,
  sex varchar2(1) default 'O' , --F╧ M  O:玂盞
  birth_day date null,
  web_site varchar2(50) ,
  QQ  varchar2(20) ,
  MSN varchar2(50) ,
  group_id varchar2(1) default 1  , --default:1炊硄ノめ23恨瞶
  last_login_date date  default sysdate  ,--Ω祅嘲丁
  last_password_date date default sysdate  ,--Ωэ盞絏丁
  post_qty number  default 0   ,--祇┇计
  post_pretty_qty number default 0  ,
  score number default 0   ,--緔 mdsets_bbs_score_rule
  psw varchar2(32)  ,--盞盞絏
  user_photo varchar2(20) ,
  creator varchar2(20)  ,--default  user_name not null,--承
  creation_date date default sysdate  ,
  updater varchar2(20) not null,--default user_name not null,--э
  update_date date default sysdate not null, --эら戳
  post_ip varchar2(30) not null, --爹ip
  constraint mdsets_bbs_users_pk primary key(user_id,user_name)  --羛龄粂猭
)--mdsets_bbs_favorite表
create table mdsets_bbs_favorite
(
user_id varchar2(8),
content_id number,
creator varchar2(20) ,
creation_date date ,
updater varchar2(20),
update_date date
)--mdsets_bbs_plate_boss 表
create table mdsets_bbs_plate_boss
(
  sub_plate_id number not null,
  user_id varchar2(8),
  creator varchar2(20) ,
  creation_date date,
  updater varchar2(20) ,
  update_date date,
  constraint mdsets_bbs_plate_boss_fk primary key(sub_plate_id,user_id)
)

解决方案 »

  1.   

    要用触发器create or replace trigger insertTri
    after insert on mdsets_bbs_users
    for each row
    begin
    insert into mdsets_bbs_favorite(userid) values(:new.userid);
    insert into mdsets_bbs_plate_boss(userid) values(:new.userid);
    end;
      

  2.   

    create or replace trigger insertTri
    after insert on mdsets_bbs_users
    when (:old.userid is null )
    for each row
    begin
    insert into mdsets_bbs_favorite(userid) values(:new.userid);
    insert into mdsets_bbs_plate_boss(userid) values(:new.userid);
    commit;
    end;
      

  3.   

    如果我没记错的话 好像触发器中不能用commit
      

  4.   

    create or replace procedure procedurename
    (
    incontent_id number,
    increator varchar2(20) ,
    inemail varchar2(30) 
    )
    begin
    insert into mdsets_bbs_users(userid,email) values(seq_UserID.nextval,inemail);
    insert into mdsets_bbs_favorite(userid,content_id) values(seq_UserID.currval,incontent_id);
    insert into mdsets_bbs_plate_boss(userid,creator) values(seq_UserID.currval,increator);
    commit;
    end;
      

  5.   

    不想用触发
    可以考虑merger into 
      

  6.   

    user_id上建序列,先取.nextval into 临时变量,再insert临时变量