小弟求个存储过程
有2个表 A,B,
基本就是在A表查询满足条件的数据插入到B表里。
1. select name,dept from A where dept=01
2. insert into B(name,dept) values(name,dept)
这个从A表取出值在循环插入B表的存储过程怎么写?另外B主键不是自增的(不能改),那我怎么插入主键啊,
这样的存储过程怎么写?谢谢
------解决方案--------------------
不用存储过程,一句话就可以:
insert into B(name,dept) select name,dept from A where dept=01;
------解决方案--------------------
B表的字段结构是什么,主键有什么要求和有什么限制?
如果两个表结构一样,为何还要插入B表?
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
其实通过触发器和SEQUENCE很容易就能实现的功能,为什么要搞的这么麻烦呢?还要“SELECT MAX(ID) FROM XX 在加1",其实根本就没有必要
------解决方案--------------------
用SEQUENCE吧,别浪费资源了,另外,楼上有人对SEQUENCE理解好像有误,你用的时候注意下
------解决方案--------------------
insert into B(id,name,dept)
select
(select (nvl(max(id),0)+rownum from b),
name,
dept
from A where dept=01;