我有一个看起来像这样的表:
我希望有一个序列,可以将保存在表格中的每个品牌的版本从1递增。目前,在我的服务中,我正在抓取某个品牌的最高版本,将其递增一个,然后将其用于新版本(如果结果返回为空,则使用1。)
但是,每当我删除一个版本并插入一个新版本时,它都会重用刚刚删除的版本,这是不可取的。我是否可以使用某种顺序来注意特定列的值,并且将为特定值递增?就像该品牌是麦当劳一样,它将有自己的序列从1开始,如果品牌是Burker King,那么它将有自己的序列从1开始。
我能想到的唯一替代解决方案是创建一个新表,该表跟踪曾经制作过的所有品牌和版本对(最初,我会选择最高版本并为每个品牌排成一行,版本组合,以获取当前版本下的每个版本),但我想避免制作新表。
答案 0 :(得分:0)
在MS SQL中,您可以将具有标识密钥的表设置为:
CREATE TABLE vanities
(id INT,
version INT IDENTITY (1,1),
description VARCHAR)
因此,每当您从已插入的值中删除记录时,新插入都不会采用已删除的标识列值。