zoukankan      html  css  js  c++  java
  • 给已有数据的oracle表建立外键关系

    添加两张已存在数据的表的关系外键时,报如下图所示的错误:

    出现这种错误,无非是两张表的关联字段的名称、类型、长度等不一致,又或者表中已存在的数据不匹配造成的。

    我们可以通过minus关键字查询2张表的差值,确实存在!!!

    解决方法有两种:

    (1).删除多余的数据,保持2张表数据统一,在执行 alter table 表1 add constraint FK_XXX foreign key(字段1)  references 表2 (字段2);就不会报错了;

    (ps:这种方式在实际生产过程中不实际,生产环境数据不能随便删除的,所以这种方式不现实,不推荐)

    (2).在alter语句之后加上enable novalidate即可,即alter table 表1 add constraint FK_XXX foreign key(字段1)  references 表2 (字段2) enable novalidate;

    (ps:enable novalidate指的是允许已有记录不满足约束条件,但新增/修改的记录则必须满足约束条件)

    这是其他3种修饰关键词的含义:

    Enable Validate与Enable相同,检查已有记录和新增记录,确保都符合约束;

    Disable Validate禁用约束,删除约束上的索引,不允许修改任何被约束的记录;

    Disable Novalidate与Disable相同,禁用约束,删除约束上的索引,且允许修改被约束的记录。

     

    参考博客链接

  • 相关阅读:
    json不支持中文写入的问题解决
    include(thinkphp常用内置标签)
    php如何设置编码格式
    模板替换
    获取网页内容之后图片不显示
    远程调用数据文件内容
    文件上传
    getError自动验证
    php文档编码设置
    获取网页内容时的乱码问题
  • 原文地址:https://www.cnblogs.com/4AMLJW/p/asfdfewf.html
Copyright © 2011-2022 走看看