首先我们先创建表并建立约束
【表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);
如有错误,欢迎指正。
创作不易,一键三连。