说我想要下面的人员表:
ID Revision Name
-------------------------------
1 1 James
1 2 James
2 1 Al
对名为James的人(ID = 1)的任何更改都将使用新修订号的INSERT完成。任何新人记录都将使用初始修订号的ID = 3。
为实现这一目标,我可以从ID列+ 1中选择最大值,并使用初始值1进行新记录的修订,并从修订列中选择max + 1进行更新。我可以使用id + revision作为复合键。
我的问题是:有更合适的方法吗?我应该手动选择这些最大值并与预准备语句一起使用,还是可以将它们组合到单个事务中以避免另一个事务具有相同的最大值并且正在使用它们的情况?
我正在使用Spring JDBCTemplate,任何特定于此的建议都会有所帮助。
由于
编辑: 我已经看过这个解决方案,但我不确定这会如何转化为JDBCtemplate。 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/19111cf9-264a-4e6f-885e-5728b4162451/create-a-custom-identity-column-revision-based-database?forum=transactsql