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



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

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

我希望此查询在 2 个库中运行,如第一个/项目2 和第二个/项目2

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

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

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

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

有关详细信息,请参阅 CREATE TRIGGER 语句。

如果这将经常运行,请考虑将 INSERT 放入存储过程中,然后通过 SET 架构设置目标架构:

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

你可以像这样创建一个 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))

从IBM的INSERT语法图(http://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)。

相关内容

  • 没有找到相关文章

最新更新