sybase的自增列问题?太怕人了/

冷月孤峰 2004-02-28 03:38:14
我设置了一个列为自增列/
但是经常发现这个自增列有时会变得很大能从8一下子增加到500000001/
有什么办法解决吗?还是我设置错了?
...全文
228 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷月孤峰 2004-03-15
  • 打赏
  • 举报
回复
TO: damangren(大忙人)
现在做的是WEB方式的物资系统/
具体多少人在同时对一个表进行操作我也统计不出来/
ELAIN 2004-03-15
  • 打赏
  • 举报
回复
identity gap 在哪里设置呢???
shenjt2003 2004-03-15
  • 打赏
  • 举报
回复

关于字段自动增的用法:

1、创建表的时候也要同时创建另外一个表,如下例子
create table invoices
(invoice_nr numeric(10,0),
customer_nr int,
amount money)
同时建立
create table invoices_keytable
(dummy_key numeric(10,0) identity)

2、正常情况下程序插入中要写如下语句

insert invoices_keytable values ()

insert invoices(invoice_nr, customer)
values (@@identity, 'bbb') ;

3、如果不正常关机会出现字段突然急剧增大的情况,要采取如下措施

第一步:drop table invoices_keytable ;
第二步:在invoices表中找到关于invoice_nr的最大值,譬如是7
第三步:在ISQL中执行:
set identity_insert invoices_keytable on
go
第四步:在PB或者ISQL中执行均可的语句:

insert invoices_keytable (dummy_key) values (7) //此处的7就是从invoice中得到的最大值
第五步:在ISQL中执行:
set identity_insert invoices_keytable off
go
4、这样以后就可以正常执行插入操作了,即可以从原来开始,不会出现急剧增大的情况了

damangren 2004-03-13
  • 打赏
  • 举报
回复
你的数据库支持的前台系统是什么业务类型的,并发操作的量有多大?说的更确切些:如果是1000多人使用,那么最多有多少人在同时对一个表进行操作?

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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