既存のテーブルに新しい外部キーを追加するのはそれほど難しいことではないので、私は信じられないほど愚かなことをしているに違いないと確信しています。しかし、私はまだ立ち往生しています。これが私がしていることです。
TPM_USER
まず、ユーザーが所属するチームを保存するために、に新しい列を作成しました。
ALTER TABLE TPM_USER ADD (
"TEAMID" NUMBER NULL
)
これはエラーなしで機能し、TPM_USER
テーブルをクエリして新しい列が追加されたことを確認できます。次に、TEAMIDが既存のTPM_DEVELOPMENTTEAMS
テーブルの行を参照するようにします。私もです:
ALTER TABLE TPM_USER
ADD CONSTRAINT TPM_USER_FK1
FOREIGN KEY(TEAMID)
REFERENCES TPM_DEVELOPMENTTEAMS(TEAMID)
これは私にエラーを与えます:
ORA-02270:この列リストに一致する一意キーまたは主キーがありません
両方のTEAMID
列が同じデータ型(NUMBER)であり、TEAMIDがDEVELOPMENTTEAMS
テーブルの主キーであることを確認しました。実際、次のスキーマは次のDEVELOPMENTTEAMS
とおりです。
CREATE TABLE TPMDBO.TPM_DEVELOPMENTTEAMS (
TEAMID NUMBER NULL,
NAME VARCHAR2(100) NOT NULL,
ISACTIVE CHAR(1) NULL,
SORTORDER NUMBER NULL,
SHORTNAME VARCHAR2(100) NULL,
GROUPID NUMBER NOT NULL,
CONSTRAINT TPM_DEVELOPMENTTEAMS_PK PRIMARY KEY(TEAMID)
NOT DEFERRABLE
DISABLE NOVALIDATE
)
Aqua Data StudioのGUIインターフェイスを試して、新しい制約も追加したので、スペルを間違えたことはないと確信しています。私は何が間違っているのですか?