例如现在有表:tab_books 字段: | id | name | price | level | 四个字段 {Level 为无重复字段}
假若有数据: [100012] [Java] [100.0] [1]
[100013] [Java] [100.0] [2]
[100014] [Java] [100.0] [3]
[100015] [Java] [100.0] [4]
[100016] [Java] [100.0] [5]
[100017] [Java] [100.0] [8]
问题一:确保 level 字段数据的连续性,比如现在 100016 与 100017 就不连续了,如果值 5,和8之间没有
其他的值了,如何实现把 8,修改成 6. 比如在插入数据[100018]时,level 字段是5 ,而5 在[100016] 已
经存在了,那该怎样实现 新插的数据 5 变成 6问题二:比如现在更新了 [100014] 行 的 level 字段 的值为 2,那么如何让 [100013] 行的 level 字段
值自动修改成 3My SQL数据库

解决方案 »

  1.   

    level 字段可以自增长呀,或者你也可以使用触发器呀!
      

  2.   


    1、每次插入数据前都查询count(*),并且对新插入的level复制为count(*)+1
    2、如果修改某条记录的level值,需要考虑的情况较多;如果是修改已经存在的值,则只需要做一次替换。
    10014的level改成2,那么同时把10013的level的值改成3
      

  3.   

    你每次更新操作(修改或者插入、删除)之后加上2句SQL
    1、删除 level列
    2、重新插入该列 并设置为自动增长 该方法是最直接 最简便的