Oracle
ORA-02270 - Oracle 中的 FK 可以在 VARCHAR2 列上定義嗎?
SQL 不僅僅是文字:
CREATE TABLE "currency" ("id" NUMBER(10) NOT NULL, "currency" VARCHAR2(50) NOT NULL, "name" VARCHAR2(1020) DEFAULT NULL NULL, PRIMARY KEY("id"));
CREATE TABLE "user" ("id" NUMBER(10) NOT NULL, "name" VARCHAR2(1020) DEFAULT NULL NULL, "currency" VARCHAR2(50) DEFAULT NULL NULL, PRIMARY KEY("id"));
CREATE UNIQUE INDEX IDX_6956883FFF467AE9 ON "currency" ("currency");
ALTER TABLE "user" ADD CONSTRAINT FK_8D93D6496956883F6956883F695 FOREIGN KEY ("currency") REFERENCES "currency" ("currency");
ORA-02270: 此列列表沒有匹配的唯一鍵或主鍵
列類型相同,並添加了唯一索引。
為什麼無法添加 FK?
唯一索引不包括唯一約束。
添加約束並重試:
alter table "currency" add unique("currency") using index IDX_6956883FFF467AE9;