gpt4 book ai didi

java - 当 SELECT 查询在插入查询之前时,getGeneratedKeys() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:44 25 4
gpt4 key购买 nike

preparedStatement.getGeneratedKeys() 在查询只有一个 INSERT MySQL 语句时工作正常,但如果查询中有多个语句,它不会返回生成的 ID,即: test 有 (ID (PK, auto_increment), Name, Loan) 列:

        sqlQuery = "SET @Loan = (SELECT Loan FROM customers WHERE CID = 4);"
+ "INSERT INTO test(Name, Loan) VALUES('jihad', @Loan);";
PreparedStatement st = connection.prepareStatement(sqlQuery, Statement.RETURN_GENERATED_KEYS);
st.executeUpdate();
ResultSet rs = st.getGeneratedKeys();
if (rs.next()) {
int id = rs.getInt(1);
System.out.println("Generated ID: "+ id);
}

最佳答案

我不知道这个答案是否有助于解决您的问题,但可以将您的插入写成一条语句:

sqlQuery = "INSERT INTO test (Name, Loan) ";
sqlQuery += "SELECT 'jihad', (SELECT Loan FROM customers WHERE CID = 4)";

PreparedStatement st = connection.prepareStatement(sqlQuery, Statement.RETURN_GENERATED_KEYS);
st.executeUpdate();

关于java - 当 SELECT 查询在插入查询之前时,getGeneratedKeys() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54549412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com