当另一个值更改时,如何重设自动递增的值?

时间:2018-12-26 13:12:28

标签: postgresql

我实际上是在PostgreSQL数据库结构上工作,并且我很难确定如何解决问题。 数据库将记录有关建筑对象的数据。 主表“对象”具有使用 type localization 等信息描述对象的属性。 这些属性之一是名为 object_num 的序列。 另一个表称为“代码”,其中包含一个由三个字母组成的代码,分别对应执行任务的城镇。

示例: 我正在为巴黎市的建筑盘点。 code_name 将是PRS,第一个条目(又名第一个建筑实体:房屋,桥梁等)将与 object_num 001关联。 因此,PRS001将是引用此特定体系结构实体的唯一标识符。 事情继续进行,我可能会得到很多条目,例如条目PRS745。

说此任务尚未完成,但针对波尔多市的新任务开始了,BDX将在该市确定库存。最好将第一个条目的标识符设为BDX001,而不是BDX746(自动递增)。 考虑到这一点,很高兴的是,在波尔多(BDX211)取得一些记录后返回巴黎任务,下一个值将从(PRS)745而不是(BDX)211开始。

因此,使用新代码时是否可以将序列的值重置为1? 是否可以从特定代码的最后一个值开始回退串行增量?

我想您可以通过约束和检查来执行此任务,但是我对这些并不是很熟悉,并且有点迷茫...

感谢您的帮助,

Yrkoutsk

1 个答案:

答案 0 :(得分:0)

您可以为每个 code_name 创建单独的序列,并根据 code_name 来获取auo增量:

#therapist-display
        {
            border-style: solid;
            background: white;
            height:230px;
            width: 650px;
            text-center;
        }

每次添加新的code_name时,您都必须创建一个新序列,否则当您尝试访问不存在的序列时,数据库最终将引发错误。