OS:XP日文版
问题叙述:不知道进行了什么操作之后,数据库突然多出了KE_TOKUI_1018115735(红色字体推测为当时时间),原表为KE_TOKUI。两张表的结构没有不同,只是 KE_TOKUI(原表)要比 KE_TOKUI_1018115735 这张表多出了
PRIMARYKEY约束和注释,并且 KE_TOKUI(原表)中的数据全部转移到了后来自动生成的 KE_TOKUI_1018115735 这张表中。请问各位大虾这是为什么,怎么才能恢复原来的状态(数据库没有备份T-T)??

解决方案 »

  1.   

    应该是其它人建的表。
    --create tb as select * from tb
    如果确定没用,删除表就可以。
      

  2.   

    select object_name, created, last_ddl_time from user_objects where object_name like 'KE_TOKUI%';看看那个新表是什么时候创建的,然后看一下那个时候是不是有人动过数据库要恢复的话
    insert into KE_TOKUI
    select * from KE_TOKUI_1018115735;
      

  3.   

    这个方法试验过了,可行,但是有个问题。我的实验过程是这样的:
    新建TABLE SXD1,插入新数据
    使用命令
    CREATE TABLE SXD2 AS SELECT * FROM SXD1;
    这样会成功并且SXD1中的值会到SXD2中
    但是上午的操作确实没有CREATE 操作
    而且,各位觉不觉得KE_TOKUI_1018115735  红色部分是个时间戳。是建表的时间。
      

  4.   


    按照您的方法做了,不过可惜的是KE_TOKUI_1018115735被DROP过了,FLASHBCK后的TIMESTAMP已经不是
    表的创建时间了。
    我觉得1018115735是个时间戳,记录的是建表时间。
    今天没有执行过创建KE_TOKUI_1018115735的命令。只对KE_TOKUI进行了修改(添加字段),从原来的48个加到了84个。
    说到这我又想起来一件事,KE_TOKUI_1018115735比KE_TOKUI少一个字段。
      

  5.   

    对了,ORACLE会不会在什么特殊的情况下会自动建表呢?
      

  6.   


    如果你没有应用做这个事情的话,oracle 自己不会创建表的