Genexus 如何实现获得数据库表中的最大值及多用户的控制

例子:我们新增物资内容后,保存到数据库中,系统需要保存一个唯一的记录流水号。
我们设计Trn如下
  TrnPrd
        ( * PrdID       N(8.0)
                 PrdCod   V(40)
                 PrdNam  V(40)
                 PrdCom  V(40)
                 PrdNum  V(40)
       )

我们可以设计 PrdID为主键 , 并且 设置 PrdID 的 autonumber = true ,step = 1,即prdId是自增类型

这样 我们新增记录时,就不需考虑PrdID

PrcInsPrd:

New

       PrdCod = &PrdCod
       PrdName = &PrdName
       ..................

EndNew

保存时,oracle数据库会自动写上prdid。
这样有好处,也有很不好,就是我们不能很有效的控制prdid。比如说表trnprd导出到备份后,还原数据时,prdid都已经变了,就是说关键字都变了,但是具体的内容没有变,这个对这个表有对应关系的话,就可以就不正确了,因为原来的主键都变了。

所以我们一般不把prdid设为 autonumber

这样的话,我们就需要手工得到prdid的最大值

prcgetMaxPrdID:
Rules:Pram(o

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值