0
私はこのSQL ORA-02270:この列リストに該当する一意キーまたは主キー
CREATE TABLE sickness
(
sickness_id number(2),
sickness_name varchar2(20),
PRIMARY KEY (sickness_id)
);
CREATE TABLE cover
(
cover_needed char(1) NOT NULL,
employee_id number(3),
responsibilities varchar2(50),
notes varchar2(50),
PRIMARY KEY (cover_needed, employee_id)
);
のように見えるいくつかのテーブルを作成しています私は親テーブルを作成しようとすると、これは(その後、正常に動作します以下を参照)、私はエラーを取得します。
ORA-02270: no matching unique or primary key for this column-list
しかし私は、最後の行にそれを絞られているが、私は私の人生のためにそれを把握することはできません、これはあなたがどのように定義するかであるあなた
CREATE TABLE absences
(
absences_id number(2) NOT NULL,
manager_id number(3),
employee_id number(3) NOT NULL,
absence_name varchar2(15) NOT NULL,
sickness_id number(2),
date_from date NOT NULL,
date_to date NOT NULL,
length number(2) NOT NULL,
description varchar2(40),
authorised_by_manager char(1) NOT NULL,
cover_needed char(1) NOT NULL,
half_day char(1) NOT NULL,
PRIMARY KEY (absences_id, manager_id, employee_id),
FOREIGN KEY (sickness_id) REFERENCES sickness (sickness_id),
FOREIGN KEY (cover_needed) REFERENCES cover (cover_needed)
);
私の唯一の事は私のカバーテーブルが異なる外部キーを使用する2つのテーブルに接続されているが、私のemployee_idは、abskeyテーブルの主キーではなく、PFkey employee_idを持つ別のテーブル。それが意味があれば –
@SeanKhanna。 。 。いいえ、あなたのコメントは本当に意味をなさない。しかし、主キーを合成するのではなく、テーブル内の各*行*を識別する単一の列を持つべき理由を強調しています。 –