Db2

從儲存過程返回表中的標識元素(自動生成)的方法/方法是什麼?

  • October 9, 2019

我的數據庫中有帶有自動生成的主鍵的表,當從我的 Java 呼叫程式碼中插入新行時,我想獲取這些表。我正在嘗試創建儲存過程來處理插入並將主鍵(即自動生成鍵)返回給呼叫程式碼。我一次只插入一行。

我遇到了 SCOPE_IDENTITY() 函式,但它似乎不能在儲存過程中工作。我很可能以不正確的方式使用它,所以這也可能是問題所在。

這是我從不同來源匯總的內容。這不會編譯,也絕不是正確的方法。我是一個新手,所以看起來有人試圖用一種破碎的語言進行交流。請多多包涵。

CREATE OR REPLACE PROCEDURE SAVER(IN PARAMETER1 VARCHAR(30), OUT ID_PARM BIGINT)
BEGIN
DECLARE v_PARAM VARCHAR(30);
DECLARE v_ID BIGINT;
SET v_PARAM=PARAMETER1;
INSERT INTO TAB_1 (NAME) VALUES (v_PARAM);
SELECT SCOPE_IDENTITY() INTO v_ID;
SET ID_PARAM=v_ID;
END

我擔心的另一件事是我在某處讀到 Java 和 DB2 不支持 out 參數,所以我不確定如何返回這個值。

用於獲取最近分配的標識值的 Db2 函式是IDENTITY_VAL_LOCAL().

引用自:https://dba.stackexchange.com/questions/250655