Java 在single Spring JDBC Update中从多个查询检索生成的密钥
我使用一个SpringJDBC更新来更新我的Postgres数据库中的两个表。我的SQL查询如下:Java 在single Spring JDBC Update中从多个查询检索生成的密钥,java,sql,postgresql,jdbc,sql-insert,Java,Sql,Postgresql,Jdbc,Sql Insert,我使用一个SpringJDBC更新来更新我的Postgres数据库中的两个表。我的SQL查询如下: UPDATE accounts SET last_transaction_amount = :transaction_amount WHERE acct_num = :acct_num; INSERT INTO transactions (transaction_amout) VALUES (:transaction_amount); 使用NamedParameterJdbcTemplate#u
UPDATE accounts SET last_transaction_amount = :transaction_amount WHERE acct_num = :acct_num; INSERT INTO transactions (transaction_amout) VALUES (:transaction_amount);
使用NamedParameterJdbcTemplate#update
,执行此查询并获得预期结果没有问题
transactions
表生成一个顺序事务标识符,我想将其返回给我的应用程序
我已尝试在更新
调用中传递生成的keyholder
。这将返回错误“当没有预期结果时返回了结果”
我已尝试传递生成的keyholder
和列名数组(新字符串[]{“transaction\u id”}
)。这将返回列不存在的错误。注意:当我只传递INSERT
查询而没有前面的UPDATE
查询时,此方法调用可以返回事务id
如何检索生成的密钥?谢谢大家! 您似乎在寻找
RETURNING
子句。假设序列号被称为transaction\u id
:
INSERT INTO transactions (transaction_amout)
VALUES (:transaction_amount)
RETURNING transaction_id;
您似乎在寻找
RETURNING
子句。假设序列号被称为transaction\u id
:
INSERT INTO transactions (transaction_amout)
VALUES (:transaction_amount)
RETURNING transaction_id;
这不会更改
update
调用的行为。这不会更改update
调用的行为。