你的位置:

问答吧

-> JAVA

-> 问题详情

修改数据库字段长度问题,非常紧急!大家来帮忙

我有一个表里有个主键id char(3);

第一个问题:能不能把char(3)改为varchar2(10)?

“alter table sys_company modify(comid varchar2(10));”我run了这条sql以后说是“列类型与引用类型不兼容”是不是说不能这么改啊?

如果不能这么改改成char(10)也行,但是现在的问题是有很多表和这张表有关联。这张是主表,大概有6个子表。我先改主表说子表和他有关联不能改,我先改子表也不能改?谁有办法啊?

作者: huosidun0302

发布时间: 2010-10-27

意思是主键和外键的类型不匹配,当然不能改啊

什么数据库??

作者: liuyuanshijie

发布时间: 2010-10-27

那你就从子表改起,如果我遇到这种情况,我就把这些表全删除,改好了之后再运行创建表的语句,如果你不是用语句建表的话,可麻烦了~~~~~~~~

作者: hmashuting

发布时间: 2010-10-27

设置一下, 级联修改!!

作者: liuyuanshijie

发布时间: 2010-10-27

上次我也是,碰到这样的问题,咨询了好几个人,很郁闷。

作者: lnm2005

发布时间: 2010-10-27

引用 3 楼 liuyuanshijie 的回复:

设置一下, 级联修改!!

怎么设置级联修改啊?

作者: huosidun0302

发布时间: 2010-10-27

引用 5 楼 huosidun0302 的回复:

引用 3 楼 liuyuanshijie 的回复:

设置一下, 级联修改!!

怎么设置级联修改啊?

所以问你是什么数据库嘛?

作者: liuyuanshijie

发布时间: 2010-10-27

取消约束,然后再修改

作者: closewbq

发布时间: 2010-10-27

oracle

作者: huosidun0302

发布时间: 2010-10-27

Mysql上面可以设置级联更新和删除, Oracle只有修改

1.select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R'

删除所有外键

然后再依次添加吧,

作者: liuyuanshijie

发布时间: 2010-10-27

有主外键关联关系时,修改主键约束问题:

1、在子表没有数据时,可以先修改父表主键约束,然后再修改子表约束

2、在父子表都有数据时,可先删除外键约束,再修改字段类型约束,

修改完之后重新建立外键约束。

作者: tangyanbo1110

发布时间: 2010-10-27

引用 10 楼 tangyanbo1110 的回复:

有主外键关联关系时,修改主键约束问题:

1、在子表没有数据时,可以先修改父表主键约束,然后再修改子表约束

2、在父子表都有数据时,可先删除外键约束,再修改字段类型约束,

修改完之后重新建立外键约束。

同意楼上的

作者: tang3dashu

发布时间: 2010-10-27

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐