ORA-02270-此列列表的唯关键字或主键不匹配

学习场景

数据库约束学习

-- 主表 班级表
create table classinfo(
   cid number(4), -- 班级编号
   cname varchar2(100), -- 班级名称
   cyear number(4), -- 入学年份
   clen number(1) -- 学制
);

-- 从表 学生表
create table stuInfo(
    stuNo number(10) primary key,   
    cid number(4),
    stuName varchar2(100) not null,
    stuCardID varchar2(18),
    sex varchar2(4),
    stuAge int,
    stuTel varchar2(11),
    stuAddr varchar2(100)
) 

演示过程添加的不同数据

查询两张表信息如下入所示

在这里插入图片描述

异常信息

设计外键时后提示一下异常信息

ORA-02270.此列列表的唯关键字或主键不匹配

在这里插入图片描述

解决过程

1、从表-学生表stuInfo添加外键失败提示异常ORA-02270

2、查询表中数据得知从表-学生表stuInfoCID列 编号1010 并不存在于主表-classinfo中,优先delete该数据

3、继续添加外键约束失败,删除两张表中所有数据后,依然失败!!!

4、怀疑主表-classinfo的主键约束被删掉或禁用掉

select * from user_constraints where table_name = upper('stuInfo');

alter table stuInfo disable constraint SYS_C009447;

在这里插入图片描述
5、设置或者启用主键约束,构建成功!

在这里插入图片描述

解决思路

1、设计外键关联的时候,从表外键列是否正确引入主表主键列数据

  • 主表主键列的值是否存在
  • 主外键列数据类型是否一致

2、从表外键列谁否引用的时主表主键列

3、主表主键约束是否误执行关闭、删除等

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 21:10:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 21:10:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 21:10:01       87 阅读
  4. Python语言-面向对象

    2024-03-21 21:10:01       96 阅读

热门阅读

  1. 提高效率:Python电子邮件自动化进阶技巧

    2024-03-21 21:10:01       37 阅读
  2. openjudge 4.6贪心算法3528:最小新整数

    2024-03-21 21:10:01       44 阅读
  3. ONNX 的简介及应用

    2024-03-21 21:10:01       44 阅读
  4. 设计模式(行为型设计模式——观察者模式)

    2024-03-21 21:10:01       43 阅读
  5. 使用Docker创建Let‘s Encrypt SSL证书

    2024-03-21 21:10:01       37 阅读
  6. vue2知识总结

    2024-03-21 21:10:01       39 阅读
  7. 《牛客》-D小红统计区间(easy)

    2024-03-21 21:10:01       47 阅读
  8. c++ string怎么copy固定长度的数据

    2024-03-21 21:10:01       46 阅读