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

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

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

    【表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测试和开发

  • 相关阅读:
    C#如何防止程序多次运行的技巧
    C#导出Excel按照指定格式设置单元格属性值
    js前台遍历后台返回的Datatable数据
    Datatable数据分组
    DataTable 详解(转)
    遍历Datatable
    DataTable转Json
    键值集合List转换成datatable
    DataTable转换成实体
    泛型集合与DataSet相互转换
  • 原文地址:https://www.cnblogs.com/phyger/p/14340270.html
Copyright © 2011-2022 走看看