oracle数据库 一主表 A 一子表 B 主表id自动增长,怎么根据A表ID 插入B表多条数据? 求sql
INSERTINTOMP_EXP_REQ_LINES(id,name)VALUES(主表id的值咋获取,张三)主表id的值为自动增长...
INSERT INTO MP_EXP_REQ_LINES (id,name) VALUES (主表id的值咋获取,张三)主表id的值为自动增长
展开
3个回答
展开全部
可以将A表的ID做成一个序列,添加的时候将序列的值取出来,供A,B表使用.
Declare
seqval NUMBER(10);
BEGIN
select seq_table.nextval into seqval from dual;
insert into A(id,) values (seqval);
INSERT INTO MP_EXP_REQ_LINES (id,name) VALUES (seqval,张三)
--这样就保证了与A表唯一id的一致性!
END;
Declare
seqval NUMBER(10);
BEGIN
select seq_table.nextval into seqval from dual;
insert into A(id,) values (seqval);
INSERT INTO MP_EXP_REQ_LINES (id,name) VALUES (seqval,张三)
--这样就保证了与A表唯一id的一致性!
END;
追问
这个可以在webservice里面调用的到么?代码
展开全部
写个触发器
CREATE OR REPLACE TRIGGER t_t1_insert
BEFORE INSERT ON t_t1
FOR EACH ROW
declare
v_line number;
BEGIN
v_line := to_char(new.id);
if(v_line<1) then
dbms_output.put_line('请输入>=1的整数');
end if;
for v in 1..p_line loop
INSERT INTO MP_EXP_REQ_LINES (id,name) VALUES (new.id,new.name);
end loop;
END t_t1_insert;
CREATE OR REPLACE TRIGGER t_t1_insert
BEFORE INSERT ON t_t1
FOR EACH ROW
declare
v_line number;
BEGIN
v_line := to_char(new.id);
if(v_line<1) then
dbms_output.put_line('请输入>=1的整数');
end if;
for v in 1..p_line loop
INSERT INTO MP_EXP_REQ_LINES (id,name) VALUES (new.id,new.name);
end loop;
END t_t1_insert;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b表有个字段它的值为a表的id,可以有多条数据啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询