gpt4 book ai didi

mysql - Statement.RETURN_GENERATED_KEYS 是否会生成任何额外的往返行程来获取新创建的标识符?

转载 作者:行者123 更新时间:2023-11-29 04:06:14 25 4
gpt4 key购买 nike

JDBC 允许我们使用以下语法获取数据库自动生成的主键的值(例如 IDENTITYAUTO_INCREMENT):

PreparedStatement ps= connection.prepareStatement(
"INSERT INTO post (title) VALUES (?)",
Statement.RETURN_GENERATED_KEYS
);

while (resultSet.next()) {
LOGGER.info("Generated identifier: {}", resultSet.getLong(1));
}

我感兴趣的是 Oracle、SQL Server、postgresQL 或 MySQL 驱动程序是否使用单独的往返行程来获取标识符,或者是否存在执行插入和获取 ResultSet 自动。

最佳答案

这取决于数据库和驱动程序。

虽然您没有要求,但我会为 Firebird 负责 ;)。在 Firebird/Jaybird 中,检索本身不需要额外的往返,但使用 Statement.RETURN_GENERATED_KEYS 或整数数组版本将需要三个额外的往返(准备、执行、获取)来确定要请求的列(我仍然需要为它构建一种缓存形式)。使用带有 String 数组的版本不需要额外的往返(我希望像 PostgreSQL 中那样有 RETURNING *...)。

关于mysql - Statement.RETURN_GENERATED_KEYS 是否会生成任何额外的往返行程来获取新创建的标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006260/

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