gpt4 book ai didi

sql - 每组值的自定义序列/自动增量

转载 作者:行者123 更新时间:2023-11-29 15:42:17 26 4
gpt4 key购买 nike

我正在尝试制作一个博客系统,但遇到了一个小问题。

简单地说,我的 article 表中有 3 列:

id SERIAL,
category VARCHAR FK,
category_id INT

id列显然是PK,它被用作所有文章的全局标识符。

category 列很好..类别。

category_id 用作类别内的 UNIQUE ID,因此当前存在 UNIQUE(category,category_id) 约束。

但是,我还希望 category_id 能够自动递增

我希望每次执行像这样的查询时

INSERT INTO article(category) VALUES ('stackoverflow');

我希望根据“stackoverflow”类别的最新 category_id 自动填充 category_id 列。

在我的逻辑代码中实现这一点非常容易。我只是选择最新的 num 并插入其中的 +1,但这涉及两个单独的查询。我正在寻找一种可以在一个查询中完成所有这些操作的 SQL 解决方案。

最佳答案

这个问题已经被问过很多次了,一般的想法是在多用户环境中必然会失败 - 博客系统听起来正是这样的情况。

所以最好的答案是:不要。考虑采用不同的方法。

删除列 category_id 完全来自您的表 - 它不存储其他两列的任何信息 (id, category)已经不会存储。

您的idserial列并且已经以可靠的方式自动增量。

如果您需要某种category_id没有间隙,每category ,使用 row_number() 动态生成它:

关于sql - 每组值的自定义序列/自动增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57485678/

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