数据库操作问题——自动编码排序

NIGangJunC 2017-11-07 09:58:12
现在需要操作数据库,当前问题是:一个数据表(表名Process)如下
keyword-------processnum-------processname等
123-------------00201----------------锉削
123-------------00202----------------切削
123-------------00203----------------刨铣
有如下操作:无论是插入还是删除某行的值,processnum的顺序都能从小大排序;
eg:我在00202前插入一条数据123-------------00202----------------锯削
现在表数据应该如下:
keyword-------processnum-------processname等
123-------------00201----------------锉削
123-------------00202----------------锯削
123-------------00203----------------切削
123-------------00204----------------刨铣
请问有什么方法实现此操作?
...全文
392 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liups 2017-11-07
  • 打赏
  • 举报
回复
引用 4 楼 NIGangJunC 的回复:
[quote=引用 3 楼 liups 的回复:] 楼主不明白数据库基本原理啊,虽然有些数据库可以实现某条记录插入某个位置,但是那不重要! 顺序应该只针对查询出来的结果
这就尴尬了,我一直在针对性的做项目,确实没有细化的学习过这方面的知识。等这个做完了,我还是好好学习一下基础知识![/quote] 插入一条记录,你别去管它在哪,重点是取出结果时如何排序 如果使用sql语句,它有一个order by可以搞定 以上才是数据库的正确操作
NIGangJunC 2017-11-07
  • 打赏
  • 举报
回复
引用 3 楼 liups 的回复:
楼主不明白数据库基本原理啊,虽然有些数据库可以实现某条记录插入某个位置,但是那不重要! 顺序应该只针对查询出来的结果
这就尴尬了,我一直在针对性的做项目,确实没有细化的学习过这方面的知识。等这个做完了,我还是好好学习一下基础知识!
liups 2017-11-07
  • 打赏
  • 举报
回复
楼主不明白数据库基本原理啊,虽然有些数据库可以实现某条记录插入某个位置,但是那不重要! 顺序应该只针对查询出来的结果
NIGangJunC 2017-11-07
  • 打赏
  • 举报
回复
我自己已经试出来了,先用Sort从小到大排序,然后找出当前列名最小值,然后知道总共有多少行,遍历的方法给那列所有的都加一就行了!
shadowpj 2017-11-07
  • 打赏
  • 举报
回复
processnum数据在丰富一点就好测试。。。数据有主键吗?直接用SQL语句更新 1、先update 在写入(缺点写入失败数据已更新,所以最好更新和写入用事物处理一起操作) update Process set processnum:=right('00000'+cast(processnum+1 as varchar(10)),5) where processnum>='写入的00202' insert Process 数据 2、先写入后UPDATE,已数据主键做为判断条件比如processname insert Process 数据 update Process set processnum:=right('00000'+cast(processnum+1 as varchar(10)),5) where processnum>='写入的00202' and processname<>'写入的锯削'

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧