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

  • 相关阅读:
    SQL Server没有足够的内存继续执行程序 (mscorlib)的解决办法
    在IIS上搭建WebSocket服务器(一)
    端口号被占用
    2018年 年度总结
    一个人颓废的九大根源
    Arrays.asList() 踩坑
    电脑关机命令
    div 悬浮
    ajax中 踩过的坑
    oracle 密码过期问题
  • 原文地址:https://www.cnblogs.com/phyger/p/14340270.html
Copyright © 2011-2022 走看看