【发布时间】:2013-02-24 18:48:54
【问题描述】:
我有一个带有 [主键计数器] 的表,用于 [另一个表中的每页 cmets]。
这些主键是每个页面的:对于每个页面,评论 ID 从 1 开始。
我想自动分配 10 个 ID 来编写 10 个新 cmets。
— 我可以用 PostgreSQL 和 JDBC 做到这一点吗?
(您是否有任何示例/相关 JDBC 文档的链接?)
我只找到了一些关于 returning 如何作为新插入行的主键的示例,使用了一些 getGeneratedKeys,这在我的情况下似乎没有用。
***
我认为 SQL UPDATE 语句看起来像这样:
update PAGES
set NEXT_COMMENT_ID = NEXT_COMMENT_ID + 10
where PAGE_ID = ? <-- next-comment-id is *per page*
returning NEXT_COMMENT_ID into ?
因此,不同的线程和服务器不会尝试重用/覆盖相同的 ID(对吗?)。
【问题讨论】:
-
为什么需要每页评论 ID?为什么不使用每个评论的 ID 和外键返回页面?
-
@muistooshort 然后 ID 会变得相当大。但它们应该是短的连续数字,所以我可以将它们用作bitset 中的索引。
-
((我会试试这个:stackoverflow.com/a/881414/694469))
标签: java sql postgresql jdbc