IT咨询服务数据库hanainsert

HANA 如何批量 insert 数据

表 Product 插入一行值,最常见的写法:insert into product values (1,001,'AAA');

如果想一次插入三行:
(1,001,'AAA')
(2,002,'BBB')
(3,003,'CCC')

该怎么写?
参与10

10同行回答

新数科技新数科技IT顾问北京新数科技有限公司
在HANA里使用bulk insert效率是最高的,可以利用HANA的并行计算的优势,如果用JAVA可以采用下面的批量操作方法,效率更高。大部分情况HANA和普通数据库使用方式是差不多的,最好也能了解些HANA的内幕这样才能把产品用好。sql = "INSERT INTO lxtest VALUES (?,?,?)";PreparedSta...显示全部
在HANA里使用bulk insert效率是最高的,可以利用HANA的并行计算的优势,如果用JAVA可以采用下面的
批量操作方法,效率更高。大部分情况HANA和普通数据库使用方式是差不多的,最好也能了解些HANA的内幕这样才能把产品用好。

sql = "INSERT INTO lxtest VALUES (?,?,?)";
PreparedStatement prepStmt = connection.prepareStatement(sql);
//bind values to insert to prepared statement
for(int i=0; i{
     prepStmt.setInt(1, i);
     prepStmt.setInt(2, i);
     prepStmt.setString(3, "test");
     prepStmt.addBatch();
}
//execute statement with parameters previously bound (batch insert)
prepStmt.executeBatch();
connection.commit();收起
IT咨询服务 · 2014-12-09
浏览5621
antanseantanse软件开发工程师mc
回复 5# zwlshy 我猜测是不会回滚的,除非你把整个插入语句放到一个事务中,hana本质上是个数据库,我猜它应该跟其他数据库在类似。没机会测试,只是猜测,你可以测试一下。显示全部
回复 5# zwlshy
我猜测是不会回滚的,除非你把整个插入语句放到一个事务中,hana本质上是个数据库,我猜它应该跟其他数据库在类似。没机会测试,只是猜测,你可以测试一下。收起
保险 · 2014-12-02
浏览5510
xzh198811xzh198811软件开发工程师信华精机
新手果断收藏!!!!显示全部
新手果断收藏!!!!收起
软件开发 · 2014-11-28
浏览5450
tslai29tslai29软件架构设计师free
收藏收藏显示全部
收藏收藏收起
IT咨询服务 · 2014-11-23
浏览5501
sadivennsadivennIT顾问Siping
挨着插显示全部
挨着插收起
IT咨询服务 · 2014-11-05
浏览5438
lanTechlanTechit技术咨询顾问lanTech
:victory:显示全部
:victory:收起
电信运营商 · 2014-10-16
浏览5541
zwlshyzwlshy项目经理北京兴竹同智信息技术股份有限公司
想问一下 插入多行时,其中有一行不成功,已经插入的的会回滚么?hana 是个什么处理机制呀显示全部
想问一下 插入多行时,其中有一行不成功,已经插入的的会回滚么?
hana 是个什么处理机制呀收起
IT咨询服务 · 2014-10-15
浏览5486
cwuicwui软件实施顾问上海格蒂电力
Good!不过 'create table system.a_test' 是行表显示全部
Good!
不过 'create table system.a_test' 是行表收起
IT咨询服务 · 2014-10-14
浏览5471
goalfishgoalfish软件开发工程师特步(中国)有限公司
--HANA的dummy虚拟库,可以用来充当没有必要查询实际库的select 语句中from的对象; select * from dummy; --创建测试表 create table system.a_test(id integer,cn_name varchar(10),cn_note varchar(30)); --单条插入 insert into system.a_test(id,cn_name,cn_note) values...显示全部
 --HANA的dummy虚拟库,可以用来充当没有必要查询实际库的select 语句中from的对象;
select * from dummy; 
--创建测试表
create table system.a_test(id integer,cn_name varchar(10),cn_note varchar(30));
 --单条插入
insert into system.a_test(id,cn_name,cn_note)
values(1,'aa','note_aa');
--结果查看
select  * from system.a_test;

20080804174735584.JPG

--批量多条插入
insert into system.a_test(id,cn_name,cn_note)
select top 1 2,'bb','note_bb' from dummy
union select top 1 3,'cc','note_cc' from dummy
union select top 1 4,'dd','note_dd' from dummy;
--结果查看
select  * from system.a_test;

 --清理测试对象
delete from system.a_test;
drop table system.a_test;
收起
IT咨询服务 · 2014-10-14
浏览5893
princes1princes1商业智能工程师mmmm
一行一行插人,哪有一下子插三行的显示全部
一行一行插人,哪有一下子插三行的收起
软件开发 · 2014-10-14
浏览5411

提问者

cwui
软件实施顾问上海格蒂电力

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-10-13
  • 关注会员:0 人
  • 问题浏览:11412
  • 最近回答:2014-12-09
  • X社区推广