将多行插入DB2数据库 [英] insert multiple rows into DB2 database

查看:223
本文介绍了将多行插入DB2数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在DB2表中插入多行。
我有一个查询,看起来像这样

  insert into tableName 
(col1,col2,col3, col4,col5)

(val1,val2,val3,val4,val5),
(val1,val2,val3,val4,val5),
(val1,val2, val3,val4,val5),
(val1,val2,val3,val4,val5);

此查询无效。我不知道在DB2中是否有更多的语法正确的方法来做到这一点。但是插入测试数据会很有用。

解决方案

我假设你正在使用DB2 for z / OS,不幸的是(无论什么原因,我从来没有真正理解为什么)不支持使用完全选择的值列表。



您可以使用下面的选择。这有点笨拙,但它有效:

  INSERT INTO tableName(col1,col2,col3,col4,col5)
SELECT val1,val2,val3,val4,val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1,val2,val3,val4,val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1,val2,val3,val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1,val2,val3,val4,val5 FROM SYSIBM.SYSDUMMY1

您的声明将适用于DB2 for Linux / Unix / Windows(LUW),至少在我的LUW 9.7上进行测试时。


I want to insert multiple rows into a DB2 table. I have a query that looks like this

insert into tableName 
(col1, col2, col3, col4, col5) 
values 
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5);

This query does't work. I don't know if there is a more syntactically correct way to do this in DB2. But it'd be useful to insert my test data.

解决方案

I'm assuming you're using DB2 for z/OS, which unfortunately (for whatever reason, I never really understood why) doesn't support using a values-list where a full-select would be appropriate.

You can use a select like below. It's a little unwieldy, but it works:

INSERT INTO tableName (col1, col2, col3, col4, col5) 
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1

Your statement would work on DB2 for Linux/Unix/Windows (LUW), at least when I tested it on my LUW 9.7.

这篇关于将多行插入DB2数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆