!!!! 关于Sybase 自增出错及数据恢复的问题,兄弟姐妹们给点主意吧 !!!!

a3skite 2002-09-11 12:04:02
版本:11.x
使用时间:不到一年
出现的问题:
好多表(好多!)自增列(如ID)如下:
ID ……
-------------------
……
56
57
50000000000058
50000000000059
……

必须把把整个表drop重建,才能正常insert,连truncate都没用

问:1. 如何把这些表的数据(包括正常的ID)弄出来,重建完表之后再弄回去(

包括ID)
2. 这是怎么回事?我想不通!
...全文
35 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdhs 2002-10-13
  • 打赏
  • 举报
回复
是事务处理异常造成的

heijj(黑晶) 的方法可以参考
但不能用PB做,pb删不了出错行
pufan 2002-09-12
  • 打赏
  • 举报
回复
找找恶意代码的规律,编程把它删掉!
joss 2002-09-12
  • 打赏
  • 举报
回复
听到这消息!!
自增出错!!
是不是恶意动过数据库结构等内容!!

heijj 2002-09-12
  • 打赏
  • 举报
回复
要不你试一试这个比较笨的方法,
1、建一张跟出错表一模一样的表,然后再随便增加一个字段
2、先读出出错表里的信息,比如你可以把它们读到数据窗口dw_error里去。
3、用新表也建一个数据窗口dw_new
3、写一些代码把出错的数据改回到正确值,改了之后按出错列SORT一下
4、把数据一行一行的从上往下从dw_error读出来,写到dw_new里去,当然自增列就不写了,如果发现自增列的不连续(要是删除过话),比如57 了后是 60 ,不要跳过58,59,同样在dw_new里面加进去,内容就随便写了,关键是给那个新增的字段赋一个值,比如‘1’。
5、保存dw_new
6、用delete 命令根据新增字段 =1’的条件删除多出来的列
7、修改新表删除那个字段。
8、删除出错表,修改新表的名字为出错表的名字

我对sybase不大熟悉,只能想出这样一个笨办法,高手不要笑,至于为什么出错就更不知道了,口黑口黑。
a3skite 2002-09-12
  • 打赏
  • 举报
回复
to panhao(活宝) :

具体怎么导出数据、导入数据?
全库备份恢复的话没用。
解决了我给100以上的分!
balloonman2002 2002-09-11
  • 打赏
  • 举报
回复
是不是正常的应该是56、57、、、,但它变成500000000000059之类的,自动加了500000000000?
balloonman2002 2002-09-11
  • 打赏
  • 举报
回复
没看懂,什么是正常的ID啊?什么是不正常的ID啊?
a3skite 2002-09-11
  • 打赏
  • 举报
回复
就是这个意思
juwuyi 2002-09-11
  • 打赏
  • 举报
回复
是不是被别人恶意给修改的病毒之类的
panhao 2002-09-11
  • 打赏
  • 举报
回复
首先,pb中检索数据,另存为sql文件。
然后,删除表
再次,将sql文件执行,倒入数据。


我经常这样干的
zzz1975 2002-09-11
  • 打赏
  • 举报
回复
id字段的类型??

现在的数据量?/

没有什么别的改动或者什么病毒。。。??

只是个常规的的思路。。。

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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