Oracle 中 insert 同时插入多条数据
1. 语句
Oracle 与 Mysql 不同. 多条插入命令不一样.
INSERT ALL
INTO t_table ("col1", "col2", "col3") VALUES ('val1', 'val2', 'val3')
INTO t_table ("col1", "col2", "col3") VALUES ('val1', 'val2', 'val3')
INTO t_table ("col1", "col2", "col3") VALUES ('val1', 'val2', 'val3')
select 1 from dual;
INSERT ALL
开头select 1 from dual
结尾, 不许含有, 否则会报错缺少 select 关键词. dual 可以替换不是 t_table 的任意一个表.- 没插入的一条语句中间没有
,
符号.
2. Mybatis
<insert id="insertList" parameterType="java.util.List">
INSERT ALL
<foreach collection="list" index="index" item="item">
INTO t_table
("col1", "col2", "col3")
VALUES
(
#{item.col1,jdbcType=VARCHAR},
#{item.col2,jdbcType=VARCHAR},
#{item.col3,jdbcType=VARCHAR}
)
</foreach>
select 1 from dual
</insert>