我想要一个存储过程在执行后返回新记录的主键。我认为它将由程序中的 OUT 参数返回。但是如何选择新插入的行 ID 呢?我不想使用 select MAX(row_id) 因为它是一个多用户环境。 任何程序示例将不胜感激。
我的平台是 ISeries DB2 V5 R4。谢谢。
编辑
行 id 列不是标识列。它使用一个序列作为键,该序列在插入表之前通过触发器生成。
编辑
这是我想做的
Begin Stored procedure
Insert into Employees;
(row id gets automatically generated by trigger)
Return row id ;
我想避免在返回行 ID 时进行选择。
最佳答案
只需将输出参数设置为包含 PK 的列即可。
CREATE PROCEDURE DB2TBL.DO_STUFF (IN Param1 INT, IN Param2 CHAR(32),OUT Param3 INT)
/* Param1 is primary key */
LANGUAGE SQL
P1: BEGIN
DECLARE OUTPARAM INT;
/* Do the stored procedure */
SET OUTPARAM = Param1;
关于sql - 存储过程在插入后返回主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315739/