|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 关于提前获得ID的方法
我的收件箱(0)
共有
166
人关注过本帖
标题:
关于提前获得ID的方法
只看楼主
加入收藏
fanjinyu9108
等 级:
论坛游民
帖 子:712
专家分:20
注 册:2014-1-16
结帖率:
88.8%
楼主
收藏
问题点数:20 回复次数:10
关于提前获得ID的方法
我使用的vfP自身的DBF格式数据库表,因为软件功能的需求,我需要在添加记录前,获知表在添加记录后的ID值,ID字段的类型是自动增量的,请问怎么实现?
前天 08:59
举报帖子
使用道具
赠送鲜花
nbwww
等 级:
贵宾
威 望:
11
帖 子:348
专家分:835
注 册:2021-1-9
第
2
楼
收藏
得分:0
不是加1?
前天 09:04
举报帖子
使用道具
赠送鲜花
fanjinyu9108
等 级:
论坛游民
帖 子:712
专家分:20
注 册:2014-1-16
第
3
楼
收藏
得分:0
这个不对,如果加入记录前有删除的记录呢?
前天 09:13
举报帖子
使用道具
赠送鲜花
wengjl
等 级:
贵宾
威 望:
109
帖 子:2272
专家分:4089
注 册:2007-4-27
第
4
楼
收藏
得分:0
加入前对忆有的号取最大值,然后 +1
只求每天有一丁点儿的进步就可以了
前天 09:34
举报帖子
使用道具
赠送鲜花
nbwww
等 级:
贵宾
威 望:
11
帖 子:348
专家分:835
注 册:2021-1-9
第
5
楼
收藏
得分:0
以下是引用
fanjinyu9108
在2025-4-13 09:13:10的发言:
这个不对,如果加入记录前有删除的记录呢?
那要一直记录最后一个ID号了
前天 09:40
举报帖子
使用道具
赠送鲜花
fanjinyu9108
等 级:
论坛游民
帖 子:712
专家分:20
注 册:2014-1-16
第
6
楼
收藏
得分:0
比如查询最大ID是25,现在删除最后一笔记录,最大ID变成了24了,但是生成一条新记录后,ID值变成了26了,所以用最大ID值加1的做法是不可靠的
前天 10:45
举报帖子
使用道具
赠送鲜花
nbwww
等 级:
贵宾
威 望:
11
帖 子:348
专家分:835
注 册:2021-1-9
第
7
楼
收藏
得分:0
以下是引用
fanjinyu9108
在2025-4-13 10:45:15的发言:
比如查询最大ID是25,现在删除最后一笔记录,最大ID变成了24了,但是生成一条新记录后,ID值变成了26了,所以用最大ID值加1的做法是不可靠的
所以你要增加一条记录就要登记一下新增的ID号,从这个登记的ID号加上1才是你想要的
前天 11:32
举报帖子
使用道具
赠送鲜花
sam_jiang
等 级:
贵宾
威 望:
14
帖 子:881
专家分:1364
注 册:2021-10-13
第
8
楼
收藏
得分:0
回复 6楼 fanjinyu9108
那就在删除记录后,pack清理掉删除的记录,再添加记录。
尽量不要用自增量,这是很令人讨厌的一个功能。自己写个方法autoid,添加记录前用recno()获取记录数,加上1就是你的新id号。。。
前天 18:16
举报帖子
使用道具
赠送鲜花
my2318
等 级:
贵宾
威 望:
14
帖 子:304
专家分:658
注 册:2014-3-18
第
9
楼
收藏
得分:0
我的思路:增加一个唯一字段,新id号设置为自动加一,写入后查询唯一字段就可得到新id号,这样新id号就与记录数无关了,即使并发操作也不会产生重复的新id号
[此贴子已经被作者于2025-4-13 19:08编辑过]
前天 19:07
举报帖子
使用道具
赠送鲜花
csyx
来 自:火星
等 级:
版主
威 望:
37
帖 子:774
专家分:3010
注 册:2018-3-13
第
10
楼
收藏
得分:0
自增量字段确实不是什么好东西,一般设计表结构时,父表的主键和子表的外键尽量用较明确的唯一值为佳,sql server 有 newid(),my sql 有 uuid(),vfp 可用瓜哥的 getguid()。
若并发量不是特别大,实在想用也未尝不可,也并非像楼上各位所说的要自己去维护,vfp 把这个值保存在表头中,完全可以自己写个函数把它读出来,只是 cursor 就没法读表头了,只能用 GetAutoincValue() 来凑合。
这家伙很懒,啥也没留下
前天 20:37
举报帖子
使用道具
赠送鲜花
11
1/2页
1
2
快速回复:
关于提前获得ID的方法
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018088 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved