回 帖 发 新 帖 刷新版面

主题:如何在新增数据时自动生成一个顺序号的问题???

我尝试在做一个商品的订单程序,需要在录入一个新记录时自动生成一个订单号,请各位哥哥,姐姐们,有什么建议或脚本提供给我,谢谢了??
  还有一个问题若新增一个数据后,如何实现使商品的货号自动增一的操作!!!!!
  请各位高手,帮帮忙啊!!!!!!!!!!!!

回复列表 (共3个回复)

沙发

oracle中你可以建立一个序列。或者说每次插入前运行:
select max(订单号) into :ll_ddh from ...;
ll_ddh=ll_ddh + 1

板凳

楼上的做法遇到数据量比较大时 速度会有问题
还有一种办法就是做个取号器,原理如下:
在你的系统设置表中(或者你自己建个表)新增记录:
假设表名config ,有2个字段  代码字段(dm) 和 内容字段(mc)
dm = 'qhq'    //取号器
mc = '1'      //当前流水号

取号的函数:
update config set mc  = mc + 1 where dm = 'qhq'  //加锁 防止并发
select mc from config where dm = 'qhq'
commmit
如果名称字段为char型 需要做转换 convert(char(n),convert(int,mc) + 1)
这样可以保证自动累加 而且没有并发问题



3 楼

楼上的方法不错,不过我的程序里两种方式都有.

我来回复

您尚未登录,请登录后再回复。点此登录或注册