主题:如何在新增数据时自动生成一个顺序号的问题???
lihang7059
[专家分:140] 发布于 2005-10-22 16:55:00
我尝试在做一个商品的订单程序,需要在录入一个新记录时自动生成一个订单号,请各位哥哥,姐姐们,有什么建议或脚本提供给我,谢谢了??
还有一个问题若新增一个数据后,如何实现使商品的货号自动增一的操作!!!!!
请各位高手,帮帮忙啊!!!!!!!!!!!!
回复列表 (共3个回复)
沙发
mykey [专家分:100] 发布于 2005-10-24 08:44:00
oracle中你可以建立一个序列。或者说每次插入前运行:
select max(订单号) into :ll_ddh from ...;
ll_ddh=ll_ddh + 1
板凳
lufeee [专家分:30] 发布于 2005-10-26 12:10:00
楼上的做法遇到数据量比较大时 速度会有问题
还有一种办法就是做个取号器,原理如下:
在你的系统设置表中(或者你自己建个表)新增记录:
假设表名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 楼
wxyand [专家分:0] 发布于 2005-11-01 09:27:00
楼上的方法不错,不过我的程序里两种方式都有.
我来回复