Kaj*_*nus 0 java sql postgresql jdbc
我有一个表,其中包含[主键计数器],用于[另一个表中的每页评论]。
\n这些主键是每页的:对于每个页面,评论 ID 从 1 开始。
我想自动分配 10 个 ID 来写入 10 条新评论。
\n \xe2\x80\x94 我可以使用 PostgreSQL 和 JDBC 执行此操作吗?
(您有任何示例/相关 JDBC 文档的链接吗?)
\n\n我只找到了有关如何使用returning新插入行的主键的示例,其中使用了一些getGeneratedKeys在我的情况下似乎没有用的示例。
***
\n\n我认为 SQL UPDATE 语句看起来像这样:
\n\nupdate PAGES\nset NEXT_COMMENT_ID = NEXT_COMMENT_ID + 10\nwhere PAGE_ID = ? <-- next-comment-id is *per page*\nreturning NEXT_COMMENT_ID into ?\nRun Code Online (Sandbox Code Playgroud)\n\n因此,不同的线程和服务器不会尝试重用/覆盖相同的 ID(对吗?)。
\n小智 5
无需在对象上使用execute()和方法即可支持此功能:getResult()Statement
像这样的东西(禁止任何错误处理):
String sql = "update ... returning ...";
boolean hasResult = statement.execute(sql);
int affectedRows = 0;
ResultSet rs = null;
if (hasResult) {
rs = statement.getResultSet();
}
int affectedRows = statement.getUpdateCount();
Run Code Online (Sandbox Code Playgroud)
正如您知道该语句的作用,这应该没问题。处理“未知”SQL 语句有点复杂,因为您需要在循环中调用getMoreResults()and 。getUpdateCount()有关详细信息,请参阅 Javadoc。
| 归档时间: |
|
| 查看次数: |
5373 次 |
| 最近记录: |