sql - SQL - 特定比赛的起始号码的 IDENTITY 增量
问题描述
我想为比赛创建一个数据库,但我遇到了问题。
我想在链接表中自动递增起始数字Race_has_Racers.
数字应该从 1 开始递增到 N。
是否可以为特定比赛单独增加?
例如,如果我有一个比赛ID=1
和一个赛车手,ID=21 join
所以他的起始号码是 1,那么一个有ID=15
加入的赛车手和他的起始号码是2
。
现在我创建了一个比赛,ID=2
并且参赛者ID=15
加入了这场比赛,他的号码是1
,然后一个参赛者ID=7
加入比赛,ID=1
所以他的起始号码将是3
。
可以自动设置,还是我应该在比赛开始前添加起始号码?
解决方案
假设你有一张Race
桌子,一张Racer
桌子,并且你的Race_has_Racers
桌子格式如下:
CREATE TABLE Race_has_Racers
(
RaceID INT,
RacerID INT,
JoinDateTime DATETIME
)
然后你可以编写如下查询来达到你想要的结果:
SELECT ROW_NUMBER() OVER (PARTITION BY RaceId ORDER BY JoinDateTime),
RacerId,
RaceId
FROM Race_has_Racers
Identity 的目的是在表中生成递增值,通常用于自动递增主键
推荐阅读
- java - 无法提交事务
- laravel - 模拟对同一类中另一个函数的函数调用
- ios - Swift:尝试更改从另一个 swift 文件调用的函数中对象的属性时意外发现“nil”
- .htaccess - htaccess 410 url 垃圾邮件黑客请求,不包括站点生成的请求
- ionic-framework - Ionic 1:如何定义来自不同选项卡的相同状态的导航
- ios - 使用 APPAUTH swift 自定义 SafariViewController
- angularjs - 如何使用量角器从文本中选择一个句子?
- responsive-design - 使用 Appcelerator Titanium 框架的响应式 UI 设计
- git - git 子模块。分离状态与主人
- reactjs - React 组件的中介模式