【问题标题】:Can you make a sequence for each value in another column您可以为另一列中的每个值制作一个序列吗
【发布时间】:2019-11-25 17:11:05
【问题描述】:

我有一张如下所示的表格:

我想要一个序列,该序列将保存到表中的每个品牌的版本从 1 递增。目前在我的服务中,我正在获取一个品牌的最高版本,将其加一,并将其​​用于新版本(如果结果返回为空,则使用 1)。

但是,每当我删除一个版本并插入一个新版本时,它都会重用刚刚删除的版本,这是不可取的。是否有任何我可以使用的序列来关注特定列的值并为特定值增加?就像品牌是麦当劳一样,它会有自己的从 1 开始的序列,如果品牌是 Burker King,它也会有自己的从 1 开始的序列。

我能想到的唯一替代解决方案是创建一个新表来跟踪所有已制作的品牌和版本对(最初我会采用最高版本并为每个品牌和当前版本下每个版本的版本组合),但我想尽可能避免制作新表。

【问题讨论】:

标签: sql database postgresql jpa


【解决方案1】:

在 MS SQL 中,您可以将带有标识键的表作为:

CREATE TABLE vanities 
(id INT, 
version INT IDENTITY (1,1), 
description VARCHAR) 

因此,每当您从已插入的值中删除记录时,新的插入不会采用已删除的标识列值。

【讨论】:

    猜你喜欢
    • 2019-03-10
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多