如何为sqlplus中的此列列表错误修复不匹配的唯一键或主键?

时间:2019-03-31 07:29:59

标签: sqlplus

我正在尝试编写此代码。

<ng-container *ngFor="let obj of myobj | async">
  {{obj}}
</ng-container>

我确实将pat_no添加为主键,并将诊断添加为唯一键,但这表明我在创建外键时遇到此错误

    create table pat_entry (
    pat_no number,
    pat_name varchar2(20),
    pat_sex char(2) CHECK(pat_sex IN ('M', 'm', 'F', 'f') ) NOT NULL,
    pat_age number(3) NOT NULL,
    pat_address varchar2(100) NOT NULL,
    pat_ph_no number(15) NOT NULL,
    pat_entry_date date NOT NULL,
    doc_name varchar(2) NOT NULL,
    diagnosis varchar2(20),
    d_name varchar2(20) NOT NULL,
    constraint pk_patEntry_no primary key(pat_no),
    constraint uk_patEntry_name UNIQUE(pat_name, diagnosis)
    );

    Table created.

    create table pat_chkup (
    pat_no number,
    oc_no varchar2(20) NOT NULL,
    date_of_chkup date NOT NULL,
    diagnosis varchar2(20) NOT NULL,
    treatment varchar2(20) NOT NULL,
    status varchar2(16) CHECK(status IN ('admitted', 'operation', 'regular patient') ) NOT NULL,
    constraint pk_patChkup_no primary key(pat_no),
    constraint uk_patChkup_treatment UNIQUE(treatment),
    foreign key(pat_no, diagnosis) REFERENCES pat_entry(pat_no, diagnosis)
    );
    foreign key(pat_no, diagnosis) REFERENCES pat_entry(pat_no, diagnosis),
                                                        *

1 个答案:

答案 0 :(得分:0)

外键必须引用某些唯一键(无论它是否为主键)。这里,pat_entry中的唯一键是(pat_name, diagnosis),但是pat_chkup引用了(pat_no, diagnosis)

只需更改一个以匹配另一个(基于应用程序逻辑中的正确内容),就可以了。