簡體   English   中英

SQL在一個查詢中插入2個表

[英]SQL insert into 2 tables in one query

我在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個表進行插入查詢。

INSERT語句不支持插入多個表。

但是,您可以在FIRST/ITEMS2上創建一個觸發器,以自動將記錄插入/更新/刪除到SECOND/ITEMS2

有關更多信息,請參見CREATE TRIGGER語句。

如果這將經常運行,請考慮將INSERT轉換為存儲過程,然后通過SET SCHEMA設置目標模式:

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 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM