zoukankan      html  css  js  c++  java
  • 更改列的数据类型时发现有外键约束如何处理?

    此文转载自:https://blog.csdn.net/qq_42392049/article/details/113251470#commentBox

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

    【表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);
    

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

       

    更多内容详见微信公众号:Python测试和开发

    Python测试和开发

  • 相关阅读:
    时间操作
    2021.10.9数据结构实验课作业
    2021.9.28数据结构实验课作业
    2021.9.15数据结构实验课作业
    2021.9.7数据结构实验课作业
    苹果ios开发,CocoaPods安装方法-2021/9/11
    写组件库文档常用的技术
    document.execCommand 的用法
    手写JSON.stringify
    Object常用方法
  • 原文地址:https://www.cnblogs.com/phyger/p/14340601.html
Copyright © 2011-2022 走看看