怎样实现数据库表的某一个字段被更新时,为保持字段的唯一性,其它行的该字段也自动更新
例如现在有表: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 字段
值自动修改成 3 My SQL 数据库 --------------------编程问答-------------------- level 字段可以自增长呀,或者你也可以使用触发器呀! --------------------编程问答--------------------
1、每次插入数据前都查询count(*),并且对新插入的level复制为count(*)+1
2、如果修改某条记录的level值,需要考虑的情况较多;如果是修改已经存在的值,则只需要做一次替换。
10014的level改成2,那么同时把10013的level的值改成3
--------------------编程问答--------------------
自增长的话,如果删除了某一条数据,则还得手动改值!!! --------------------编程问答--------------------
触发器吧!在新增,更新和删除都加上触发器,或者跑定时任务,整理数据,看那个方便了! --------------------编程问答-------------------- 你每次更新操作(修改或者插入、删除)之后加上2句SQL
1、删除 level列
2、重新插入该列 并设置为自动增长
该方法是最直接 最简便的 --------------------编程问答-------------------- 数据库 表触发器
补充:Java , Java EE