数据库数据添加问题

luckytz 2001-09-03 08:59:17
请问如何能保证向SQL SERVER表中添加数据记录时,记录能按添加的前后顺序排列,因为我发现有时候添加一行数据后,该记录在表中的实际位置不一定是在最后一行,而这样影响了我获取最新记录的ID。
另外请问如果我想在表中某行与某行之间插入数据记录又如何办到呢?这好像直接用SQL SERVER的ENTERPRISE MANAGER都做不到。
...全文
181 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
duduwolf 2001-09-03
  • 打赏
  • 举报
回复
如果用的是Oracle数据库,自增字段怎么添加?
KingSunSha 2001-09-03
  • 打赏
  • 举报
回复
在数据库里,数据的存放方式是由数据库自己管理的,用户无法指定. 所以最常用的办法是加一个自增的字段用来表示纪录的录入先后次序.
至于"获取最新记录的ID",就算你的ID是字符类型的,如果最后的ID是最大的化,那就用一句SQL来获取:
SELECT MAX(ID) FROM TABLENAME;
如果ID的大小是无序的,那就只好再加一个自增字段了
luckytz 2001-09-03
  • 打赏
  • 举报
回复
up
luckytz 2001-09-03
  • 打赏
  • 举报
回复
可是我的记录ID必须是字符类型的,难道再加一个IDENTITY列
wxcwuxuchun 2001-09-03
  • 打赏
  • 举报
回复
建立一个自增字段,以这个字段为索引显示数据
HEROIN 2001-09-03
  • 打赏
  • 举报
回复
用Identty自段
Ton2000 2001-09-03
  • 打赏
  • 举报
回复
对,这个问题我遇到过,我用的方法是:加一个序号字段,如何对这个字段排序!

在用户加数据时自动设置这个字段的值,这种方法有个缺点:如果用户插入新记录,那序号字段可能都要重设,解决方法是设置序号字段时留一定的空间,比如设置为:1,10,20,这样以后插入新记录会比较方便!

总而言之,这方法很麻烦,但不失一种没办法的办法,哪位还有更好的方法?请不吝指教!
luckytz 2001-09-03
  • 打赏
  • 举报
回复
up up up
KingSunSha 2001-09-03
  • 打赏
  • 举报
回复
1. CREATE SEQUENCE mySeq;

2. if mytable.id is the field you want to use as an sequence key, then create a trigger:
CREATE TRIGGER mytrigger
BEFORE INSERT
ON mytable
FOR EACH ROW
begin
select myseq.nextval into :new.id from dual;
end;
luckytz 2001-09-03
  • 打赏
  • 举报
回复
那么,请问诸位sequerce operator怎么用?
Sammo 2001-09-03
  • 打赏
  • 举报
回复
同意KingSunSha(弱水三千)兄的方法!!!
luckytz 2001-09-03
  • 打赏
  • 举报
回复
谢谢各位,幸好我的ID是基本有序的,所以用MAX可以了,但不知SQUENCE怎么用,BOOKS ONLINE上只是一笔带过,而书里我居然没有找到,这是一个操作符还是别的什么?
cnwei 2001-09-03
  • 打赏
  • 举报
回复
定义一个序列(seguence)

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧