我有一个包含personID,firstName,lastName,DOB和sex列表的人。当我插入每条记录时,我会自动增加带有序列的personID列。我需要为我插入的每个记录的值,因为我必须在另一个查询中发送它。有什么办法可以在insert语句中使用select语句来检索值。我不能使用'where'因为我接受其他列的重复。因此,每个唯一的人仅由personID标识。我正在使用jdbc API连接到DB。是否有可能在JDBC中进行调用?
答案 0 :(得分:2)
不确定这是否有帮助,但如果您使用的是PL / SQL,则可以使用RETURNING INTO子句......
例如:
DECLARE
x emp.empno%TYPE;
BEGIN
INSERT INTO emp
(empno, ename)
VALUES
(seq_emp.NEXTVAL, 'Morgan')
RETURNING empno
INTO x;
dbms_output.put_line(x);
END;
/
答案 1 :(得分:1)
您可以在RETURNING
声明中使用INSERT
关键字。
INSERT INTO Person (...) VALUES (...)
RETURNING person_id INTO nbr_id
答案 2 :(得分:0)
我认为NEXTVAL
和CURRVAL
应该有所帮助。请查看此参考: Sequence Pseudocolumns ,最后一个示例(重复使用序列的当前值)
答案 3 :(得分:0)
您是否尝试过OUTPUT命令?
INSERT INTO TableName(FirstName, LastName, DOB, Sex)
VALUES (<FirstNamei>, <LastNamei>, <DOBi>, <Sexi>)
OUTPUT inserted.PersonID
WHERE <Conditions>