zoukankan      html  css  js  c++  java
  • 模拟自增ID提高数据库移植性

    在我的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

  • 相关阅读:
    C++中的结构体
    C++转换
    C++常见问题解答
    hdu 1491
    hdu 1253
    [恢]hdu 2529
    [恢]hdu 2539
    hdu 1708
    [恢]hdu 2512
    [恢]hdu 2401
  • 原文地址:https://www.cnblogs.com/zc22/p/934820.html
Copyright © 2011-2022 走看看