SQL在一个查询中插入2个表

时间:2013-09-27 10:50:20

标签: sql database db2 ibm-midrange

我在SQLRPGLE for DB2中有以下查询:

    INSERT INTO ITEMS2 (PROGRAM, VLDFILE, VLDFLD, 
    SELFILE, SELFLD) VALUES(:SCAPP   , 'CSTMR', 'CYC',
    'BYC', 'BYCC');  

我希望此查询能够在FIRST / ITEMS2和SECOND / ITEMS2中的2个库中运行

其中FIRST和SECOND是库名。这可以在一个查询中实现吗?

对于那些不了解iSeries的人:上面的insert语句类似于对2个表进行插入查询。

4 个答案:

答案 0 :(得分:2)

INSERT语句不支持插入多个表。

但是,您可以在FIRST/ITEMS2上创建触发器,以自动将记录插入/更新/删除到SECOND/ITEMS2

有关详细信息,请参阅CREATE TRIGGER声明。

答案 1 :(得分:1)

如果经常运行,请考虑将INSERT插入存储过程,然后通过SET SCHEMA设置目标模式:

set schema=first;
call my_insert_proc(:scapp);
set schema=second;
call my_insert_proc(:scapp);

答案 2 :(得分:1)

您可以像这样创建一个QMQuery

    INSERT INTO &LIB/ITEMS2 
             (PROGRAM, VLDFILE, VLDFLD, SELFILE, SELFLD)
      VALUES (&SCAPP, 'CSTMR',  'CYC',  'BYC',   'BYCC');  

然后

STRQMQRY myQmQry  SETVAR(('LIB' 'FIRSTLIB')('SCAPP' &VAR))
STRQMQRY myQmQry  SETVAR(('LIB' 'SECONDLIB')('SCAPP' &VAR))

答案 3 :(得分:0)

从IBM的INSERThttp://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Fdb2%2Frbafzbackup.htm)的语法图中,我要说你必须提出两个问题。

但是在第一次执行此查询后,您可以尝试更改当前库(http://publib.boulder.ibm.com/infocenter/iadthelp/v7r1/topic/com.ibm.etools.iseries.langref2.doc/chglibl.html)。