本文共 1137 字,大约阅读时间需要 3 分钟。
我相信对于oracle初学者来说,当遇到领导说将成千上万条的数据插入到表中的时候会很抓狂。当时我是将几十条数据插入到表中,我是insert into一句句插入进去了,执行了几十遍我就已经疯了,后来发现可以批量插入,省去了好多时间和精力。
方法一:使用union all拼接(该方法和inser into一句句插入差不多,但是执行速度快了不少)
insert into tmp(id,name,salary,address)select ('001','张三','100','上海') from dualunion allselect ('002','李四','200','重庆') from dualunion allselect ('003','王五','300','北京') from dual;commit;方法二:使用insert into...select...(可以理解为数据复制,将tmp2表中符合的数据插入到tmp1中,后可加where条件)
insert into tmp1(id,name,salary,address)select id,name,salary,address from tmp2(where ...);commit;方法三:使用insert all
insert allinto tmp(id,name,salary,address) values('001','张三','100','上海')into tmp(id,name,salary,address) values('002','李四','200','重庆')into tmp(id,name,salary,address) values('003','王五','300','北京')select 1 from dual;commit;另外,该方法还支持多表插入数据:insert allinto tmp1(id,name,salary,address) values('001','张三','100','上海')into tmp2(id,name,salary,address) values('002','李四','200','重庆')into tmp3(id,name,salary,address) values('003','王五','300','北京')select 1 from dual;commit;大功告成,再也不用因为领导让批量插入数据浪费时间而加班了!
另外,大家有什么更好的方法欢迎留言,大家一起学习进步!不加班!
转载于:https://blog.51cto.com/12777507/2401375