在我的ORM中,一个最大的问题就是怎么去模拟自增主键,因为ORM中的主键是程序控制的。

1.select max(col) from table

这种方法肯定不行,一出现并发就完蛋了。如果在程序里面做循环直到插入成功,那么逻辑就会非常的烦。。


2.添加一张专门保存主键的表,每次先更新再读取。使用事务控制并发

GO

BEGIN TRANSACTION

SELECT @MaxID = MAX_ID FROM CASSABA WHERE CATEGORY = @CATEGORY

UPDATE CASSABA SET MAX_ID = @MaxID + 1 WHERE CATEGORY = @CATEGORY

COMMIT TRANSACTION

相信第二种方法是可行的。

reference:
http://blog.csdn.net/cassaba/archive/2006/11/29/1419798.aspx

相关文章:

  • 2022-01-27
  • 2021-10-27
  • 2022-12-23
  • 2022-12-23
  • 2023-03-18
  • 2022-01-02
  • 2021-09-04
猜你喜欢
  • 2021-12-24
  • 2022-12-23
  • 2021-03-30
  • 2022-12-23
  • 2022-12-23
  • 2021-04-21
  • 2022-02-09
相关资源
相似解决方案