插入列表

oracle

  [sql]
1
2
3
4
5
6
7
8
9
10
11
insert into t_table_name(column1, column2, column_N) SELECT t.* FROM( <foreach collection="list" item="item" index="index" separator="UNION ALL"> SELECT #{column1Val} as column1, #{column2Val} as column2, #{columnNVal} as columnN FROM DUAL </foreach> ) t

把列表中的值,放在列表中,通过 UNION ALL 链接。

注意:列表一次性不要太大,避免造成 GC。

mysql

相对来说就简单许多:

  [sql]
1
2
3
4
5
6
7
8
9
insert into t_table_name(column1, column2, column_N) VALUES <foreach collection="list" item="item" index="index" separator=","> ( #{column1Val}, #{column2Val}, #{columnNVal} ) </foreach>

oracle 如何一次性查询多个 seqId

查询 1 个

  [sql]
1
select SEQXXX.nextval FROM dual;

查询多个

查询方法如下:

  [sql]
1
select SEQXXX.nextval FROM (select 1 from t_tablename where rownum <= 10)

这样一次性可以查询 10 个。