oracle的sql语句问题?把一张表中的记录insert into到另一张表中。怎么做

xieqi 2003-12-12 04:15:28
我有2张表,表1 的字段为 name,add,tel等
表2的字段为id,name,pass
表1是空表,没有记录,我现在要把表2的记录导到表1,怎么做?

要求表2的name字段,导到表1的name字段下,表1的add ,tel字段让它们为空。
也就是表2的记录根据name,一条一条insert into 到表1,add,tel字段不用去管。

我用php程序是可以完成的,但我想用一句sql语句能完成吗?
...全文
301 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
leecooper0918 2003-12-13
  • 打赏
  • 举报
回复

如果表2的记录很多,可以采用 direct load

alter table table1 nologging;
insert /*+ append */ into table1 select ... ;
commit;

如果表1有索引,可以先禁用索引,导入完毕后重建一下就可以了。
chanet 2003-12-12
  • 打赏
  • 举报
回复
或:

insert into a(id,name) values('1',(select id from b where rownum<=1));
jukyy 2003-12-12
  • 打赏
  • 举报
回复
tabel2的id字段最好是自动加1的,作为主键。
jukyy 2003-12-12
  • 打赏
  • 举报
回复
insert into table11(name) select name from table2;
最经典,还省事。
RomanticProgrammer 2003-12-12
  • 打赏
  • 举报
回复
也可以用
Select 表1.name into 表2
生成一个表2。然后再用Alter tabel给表2增加两列就行了。
RomanticProgrammer 2003-12-12
  • 打赏
  • 举报
回复
以上两位大哥已经说得很清楚了。

songyanxin 2003-12-12
  • 打赏
  • 举报
回复
insert into 表1
select name,NULL,NULL from 表2
zgh2003 2003-12-12
  • 打赏
  • 举报
回复
insert into 表1(name)
select name from 表2

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧