表结构如下:
create table a
(
aid varchar2(32) primary key,
aname varchar2(50)
)create table b
(
mid 自动增长列,
bid varchar2(32),
bname varchar2(50)
)现需将A表中的数据查询出来放到B表中,而B表中多了一列,是自动增长列,请问如何实现A表往B表中的插入操作?
create table a
(
aid varchar2(32) primary key,
aname varchar2(50)
)create table b
(
mid 自动增长列,
bid varchar2(32),
bname varchar2(50)
)现需将A表中的数据查询出来放到B表中,而B表中多了一列,是自动增长列,请问如何实现A表往B表中的插入操作?
start with 1
increment by 1;
insert into b (select seq_mid.nextval,a.* from a);
select rownum rn,aid,aname
看哈這樣可以不?
mssql 可以直接插入 bid ,bname
这样应该可以吧
/INSERT INTO b
(mid, bid, bname)
SELECT seq_mid.NEXTVAL, aid, aname
FROM a
/
如果a表的aid为始终唯一的(即某条纪录被删除后,以后纪录的主键不可能与此删除记录的主键相同),那么可以采用
insert into b values(a.aid,a.aid,a.aname);
用序列性能要稍微损耗一些,毕竟需要多查一次序列表,且查的过程中要锁此表。
主要看楼主业务需求了,所谓的b的自动增长列是不是必须要“增长”的,以及a.aid是怎么生成的了。