Sybase自增字段跳号的解决方法

数据库
Sybase自增字段跳号是指在Sybase数据库中如果数据库在开启的情况下,因为非正常的原因(死机、断电)而导致数据库服务进程强制结束。

Sybase自增字段是我们经常遇到的问题,下面就为您分析Sybase自增字段跳号的原因,并给出解决的方法,希望能够帮助到您。

Sybase自增字段跳号原因及影响:

在Sybase数据库中如果数据库在开启的情况下,因为非正常的原因(死机、断电)而导致数据库服务进程强制结束。

那么自动增长的字段将会产生跳号的情况,再往数据表里面插入记录时,自增字段会跳到一个相当大的值上面,以至于主键的自增值极有可能被用尽,或由于数值太大,应用程序中的数据类型如int型等已无法容下这么大的值,而无法在程序里面进行相关的操作。

Sybase自增字段调号解决办法:

如果还未发生过跳号情况,可按如下办法解决:

1.执行
【 select 'sp_chgattribute ' + name + ', ''' + 'identity_gap' + '''' + ', 60 go'
 from sysobjects
 where type='U'】。
其中的60是凭感觉给的一个值,一般来说这个值越大性能越好,但越大,再发生数据库服务进程非正常结束时,所跳的号也就越大。

2.对1执行的结果,拷贝到SQL编辑区域,再执行。
若已经发生跳号,需要将表中数据导出,再重建数据表,再执行1和2。再导入数据。

后话:

Sybase自增字段有个***的问题是,再移植数据库时,如果是按自增主键进行关联的数据表,在数据重新导入后,可能出现主从表的外键无法关联的情况,我是开始时没预料到这样的情况,现木已成舟,没有办法了。 以后还是要慎用自增字段作为主键。

 

【编辑推荐】

带您了解Sybase系统表

sybase数据库备份的两种方式

深入探究SYBASE数据库日志

Sybase建立索引的原则

sybase数据库备份的两种方式

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-28 16:14:14

SQL Server自

2010-10-08 15:42:39

MySQL设置自增字段

2011-03-21 12:58:26

Oracle自增字段

2010-04-09 09:28:30

Oracle自增字段

2010-04-26 11:55:48

Oracle自增字段

2010-10-20 10:04:36

sql server自

2010-07-06 09:45:08

Sybase

2010-09-28 13:53:59

sql text字段

2010-10-08 10:18:26

MySQL自增字段

2010-05-31 11:34:00

MySQL自增字段

2010-06-28 09:59:47

SQL Server自

2010-11-01 14:40:39

DB2自增字段

2010-11-12 10:38:24

SQL Server自

2023-12-26 01:09:28

MySQL存储释放锁

2010-07-09 12:49:41

SQL Server自

2010-07-15 14:01:12

telnet乱码

2011-08-18 18:34:00

Oracle数据库创建自增字段

2024-10-08 15:31:45

2011-08-19 09:45:02

DB4O设置自增ID

2011-03-01 13:40:45

500 OOPS
点赞
收藏

51CTO技术栈公众号