关于数据库循环插入数据的问题
有一张表A,里面有字段sno,gno,sname,gname,往表里插入几行数据,要求sno,gno里面的数是递增的
请大虾帮忙写一下sql语句,好像能用到循环,我就是不知道怎么实现
------解决方案-------------------- 如果你的sname和gname没有什么要求的话的,可以用循环:
begin
for i in 1..20 loop
insert into A(sno,gno,sname,gname) values(i,i,'jack'------解决方案-------------------- i,'rose'------解决方案-------------------- i);
end loop;
commit;
end;
------解决方案-------------------- 可以用sequence的nextval,就可以实现递增了
insert into A(sno,gno,sname,gname)values(seq_sno.nextval,seq_gno.nexrval,v_sname,v_gname);
------解决方案-------------------- insert into A(sno,gno,sname,gname)
select 's'
------解决方案-------------------- to_char(level), 'g'
------解决方案-------------------- to_char(level), 'sname'
------解决方案-------------------- to_char(level),'gname'
------解决方案-------------------- to_char(level)
from dual
connect by level 10
------解决方案-------------------- insert into A(sno,gno,sname,gname)
select 's'
------解决方案-------------------- to_char(level), 'g'
------解决方案-------------------- to_char(level), 'sname'
------解决方案-------------------- to_char(level),'gname'
------解决方案-------------------- to_char(level)
from dual
connect by level<10
------解决方案-------------------- 建立楼主考虑下序列号,每次取序列号的下一个值,肯定是会依次增加的
------解决方案-------------------- 引用: 可以用sequence的nextval,就可以实现递增了
insert into A(sno,gno,sname,gname)values(seq_sno.nextval,seq_gno.nexrval,v_sname,v_gname);
应该还要说明一下声明一个序列,没声明是用不了的。
------解决方案-------------------- 引用: 可以用sequence的nextval,就可以实现递增了
insert into A(sno,gno,sname,gname)values(seq_sno.nextval,seq_gno.nexrval,v_sname,v_gname);
create sequence sequence_name
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 10;
------解决方案-------------------- 上面说的都对。测试的话用connect by批量插入比较方便。正式使用要用序列