数据库中有很多表的主键类型要批量修改(从原来的number改成char)做法为:清空了所有数据,禁用了所有的外键更改主键类型的时候却依旧报出“列类型与引用的列类型不兼容”难道外键禁用约束依然存在吗?

解决方案 »

  1.   


    char的字符长度是多少啊? 又的number位数太多了,报的错吧。比如1230909090909090 变成char '1230909090909090'长度也很长吧。 
      

  2.   

    char的长度36,够用
    且表内数据已清空
      

  3.   

    alter table test1 disable constraint FK_TEST1_ID; //禁用外键
    ALTER   TABLE test2  modify ID char(36)           //修改主键类型
    报错:(直接在pl sql中手改也报错)
    “列类型与引用的列类型不兼容”其中TEST1,TEST2都为空表;TEST2中的主键ID为TEST1的外键