更改列的数据类型时发现有外键约束如何处理?

2021/01/29 10:28
阅读数 115

首先我们先创建表并建立约束

【表COURSE】

CREATE TABLE Course(
					Cno CHAR(4)PRIMARY KEY,
					Cname CHAR(40) NOT NULL,
					Cpno CHAR(4),
					Ccredit SMALLINT,
					FOREIGN KEY (Cpno) REFERENCES COURSE(Cno)
					);

这里面表COURSE引用了表Course(即自身)中的Cno属性
我们尝试修改表Course的属性Cno的数据类型;

ALTER TABLE course MODIFY Cno char(6);

运行会显示报错。
在这里插入图片描述
因为该列有外键约束,所以不能更改。
那如果我们仍要更改的话,可以先删除该外键约束,待修改完后再添加约束。


alter table Course drop foreign key course_ibfk_1;

这里的course_ibfk_1就是报错信息给出的外键约束名。
然后我们再次运行类型更改语句。

在这里插入图片描述

显示成功,然后我们可以根据需要再添加外键约束。
此时外键的数据类型还是创建时的类型,可根据需要在添加外键前进行修改

ALTER TABLE SC ADD FOREIGN KEY (Cno) REFERENCES Course(Cno);

在这里插入图片描述
如有错误,欢迎指正。
创作不易,一键三连。
在这里插入图片描述


展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部
返回顶部
顶部