起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1487|回复: 9

[结贴] wex5保存数据时如果获取表中最大的值+1做为ID存入表中

[复制链接]

48

主题

179

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
QQ
发表于 2017-2-16 20:54:21 | 显示全部楼层 |阅读模式
wex5保存数据时如果获取表中最大的值+1做为ID存入表中
发表于 2017-2-17 10:04:28 | 显示全部楼层
你指的是新增数据,某个字段递增吗??
建议创建表的时候!就将这个字段设置为递增!通过数据库控制它是最优的!不要自己控制了

保存的时候,只要指定这个字段不更新即可!
http://docs.wex5.com/wex5-server-question-list-2020
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

48

主题

179

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
QQ
 楼主| 发表于 2017-2-17 10:42:15 | 显示全部楼层
本帖最后由 sambafirst 于 2017-2-17 10:43 编辑

现在表中有一个主键order_id,已设置递增了,还有一个唯一的索引order_sn,我想给order_sn添加有序列的值如年月日+序号。请问这个如何实现呢。
2222.JPG
回复 支持 反对

使用道具 举报

发表于 2017-2-17 11:11:30 | 显示全部楼层
sambafirst 发表于 2017-2-17 10:42
现在表中有一个主键order_id,已设置递增了,还有一个唯一的索引order_sn,我想给order_sn添加有序列的值如 ...

可以通过触发器的形式生成!
就是数据新增时,触发一个触发器!将这个字段进行赋值!

可以上网搜下触发器代码如何写!
是数据库自带的能力!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

48

主题

179

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
QQ
 楼主| 发表于 2017-2-21 10:49:44 | 显示全部楼层
已经实现,通过var orcount = this.comp('ordnumData').maxByAll('order_id');//取最大值后+1即可。
回复 支持 反对

使用道具 举报

48

主题

179

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
QQ
 楼主| 发表于 2017-2-21 10:50:09 | 显示全部楼层
结贴吧
回复

使用道具 举报

发表于 2017-2-21 11:45:58 | 显示全部楼层
sambafirst 发表于 2017-2-21 10:49
已经实现,通过var orcount = this.comp('ordnumData').maxByAll('order_id');//取最大值后+1即可。 ...

这个是从前端获取的最大值!
并不一定是数据库中的所有数据哦!
这样查询获取的并不准确!如果非想查询数据库进行获取!也应该自定义action ,通过排序查询一条数据,来获取这个值的!
但是多并非的情况,需要加锁,效率不高

不能依赖前端data中的值!

最好是数据库实现这个能力!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

48

主题

179

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
QQ
 楼主| 发表于 2017-2-21 11:54:12 | 显示全部楼层
但是用数据库实现的话,保存时用数据库生成ID,还要将这个ID保存到从表的,这个ID还要在程序中使用,请问如果取得呢?
回复 支持 反对

使用道具 举报

发表于 2017-2-21 13:25:56 | 显示全部楼层
sambafirst 发表于 2017-2-21 11:54
但是用数据库实现的话,保存时用数据库生成ID,还要将这个ID保存到从表的,这个ID还要在程序中使用,请问如 ...

新增完了重新刷新data组件!将数据库中的这行数据取出来就行了!。或者单独在数据库中查询这个ID!
当然,如果你的数据量少!全部加到前端的!那么使用你的方法也可以!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

48

主题

179

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
QQ
 楼主| 发表于 2017-2-23 11:07:07 | 显示全部楼层
本帖最后由 sambafirst 于 2017-2-23 11:08 编辑

查询最大值确实影响效率,需要把全部数据加载一下才可以,已经修改方法,使用sqlquery查询一下数据个数然后再赋值即可。不过还是希望有像BEX5的那种自定义编号的功能。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-1 03:54 , Processed in 0.060018 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表