ORA-02270: 此列列表的唯一关键字或主键不匹配一些思路
admin
2023-04-23 14:02:55
0

查看两个表的结构

SQL> describe student;

Name         Type         Nullable Default Comments 

------------ ------------ -------- ------- -------- 

ID           NUMBER(10)                             

TEACHER_ID   NUMBER(10)   Y                         

STUDENT_NAME VARCHAR2(20) Y        '嗯嗯嗯'          

SAL          NUMBER(20)   Y                         

SEX          VARCHAR2(2)  Y                         


SQL> describe teacher;

Name         Type         Nullable Default Comments 

------------ ------------ -------- ------- -------- 

ID           NUMBER(10)   Y                         

TEACHER_NAME VARCHAR2(20) Y                         


查看两个表约束基本信息

SQL> select table_name,constraint_name,constraint_type,status from user_constraints where table_name='TEACHER';

TABLE_NAME                     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS

------------------------------ ------------------------------ --------------- --------

TEACHER                        TEACHER2                       P               DISABLED

TEACHER                        TEACHER                        C               ENABLED

TEACHER                        UQ_NAME                        U               ENABLED


SQL> select table_name,constraint_name,constraint_type,status from user_constraints where table_name='STUDENT';

TABLE_NAME                     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS

------------------------------ ------------------------------ --------------- --------

STUDENT                        CHK_STUDENT                    C               ENABLED

STUDENT                        PK_STUDENT                     P               ENABLED



查看约束建立那些列结构

SQL> select table_name,constraint_name,column_name from user_cons_columns where table_name='TEACHER';

TABLE_NAME                     CONSTRAINT_NAME                COLUMN_NAME

------------------------------ ------------------------------ ------------------------------------------------

TEACHER                        UQ_NAME                        TEACHER_NAME

TEACHER                        TEACHER2                       ID

TEACHER                        TEACHER                        ID


SQL> select table_name,constraint_name,column_name from user_cons_columns where table_name='STUDENT';

TABLE_NAME                     CONSTRAINT_NAME                COLUMN_NAME

------------------------------ ------------------------------ ------------------------------------------------

STUDENT                        PK_STUDENT                     ID

STUDENT                        CHK_STUDENT                    SAL

STUDENT                        CHK_STUDENT                    SEX


关联两个表的id号的时候报错(外键关联主键)

SQL> alter table student add constraint fk_student foreign key (TEACHER_ID) references teacher (ID);

alter table student add constraint fk_student foreign key (TEACHER_ID) references teacher (ID)

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


解决思路

1、查看绑定主键与外键数据类型不同(数据是否相同)

2、查看主键是否还有其他约束(外键貌似只能绑定主键),是否还有其他的检测约束等等

3、认真观察仔细,键值的状态是否开启!

本题总结

因为第一张表主键约束被关闭(约束状态红色标记),所以导致外键正常连接,小错误决成败。

解决步骤

SQL> alter table teacher modify constraint TEACHER2 ENABLE;

Table altered

SQL> alter table student add constraint fk_student foreign key (TEACHER_ID) references teacher (ID);

Table altered

关联成功!


上一篇:浅谈数据库约束

下一篇:Oracle 约束详解

相关内容

热门资讯

原创 2... 新能源车这些年跑得飞快,可有个心结一直没解开。车主晚上把车停进地库,心里多少还是打个鼓——万一它半夜...
“最强模型”公开,人人都可自由... 7月27日深夜,月之暗面(Moonshot AI)宣布开源Kimi K3模型权重,发布47页技术报告...
MIT给VLA加“外挂”,让机... 视觉—语言—动作模型(VLA)已经能够完成不少复杂的机器人任务,但在实际运行中,机器人通常需要先停下...
华硕Intel 800系主板助... 随着本地大模型、AI绘图、AI视频生成以及智能办公等应用快速普及,AI主机正逐渐成为2026年DIY...
“七姐妹”市值一夜蒸发5.8万... 出品 | 搜狐科技 作者 | 梁昌均 美股遭遇“黑色星期四”。最新交易日,美股三大指数集体重挫,纳指...
OpenAI智能体攻击范围扩大... 【CNMO科技消息】7月29日,据路透社报道,此前引发关注的OpenAI智能体入侵Hugging F...
华为苹果正面硬刚 华为Mate... PChome 7月29日消息,据数码闲聊站爆料,国内手机品牌将于9月举办两场重磅发布会,9月上旬推出...
SK集团会长崔泰源:Anthr... IT之家 7 月 26 日消息,据彭博社当地时间 24 日报道,SK 集团会长崔泰源近日在美国加利福...
“一次愉快的会晤”,泽连斯基披... 在俄乌互相加大对对方纵深目标打击之际,乌克兰总统泽连斯基7月28日造访了白宫,与美国总统特朗普举行会...