我正在尝试将字段的唯一值插入Subject
到Main_Standards
的Name
字段中Subjects
,该字段是引用该Subject
字段的外键。
这是我的Main_Standards
桌子:
CREATE TABLE "Main_Standards" (
"ID" INTEGER NOT NULL UNIQUE,
"Subfield" TEXT NOT NULL,
"Domain" TEXT NOT NULL,
"Code" INTEGER NOT NULL UNIQUE,
"Standard_Type" TEXT NOT NULL,
"Assessment_Type" TEXT NOT NULL,
"Subject" TEXT,
"Subject_Reference" TEXT,
"Title" TEXT NOT NULL,
"Level" INTEGER NOT NULL,
"Credits" INTEGER NOT NULL,
"Grading_Scheme" TEXT NOT NULL,
"Status" TEXT NOT NULL,
"Expiry_Date" TEXT,
"Publication_Date" TEXT NOT NULL,
"CurrentVersion" INTEGER NOT NULL,
"Hyperlink" TEXT,
PRIMARY KEY("ID" AUTOINCREMENT)
)
这是我的Subjects
桌子。
CREATE TABLE "Subjects" (
"ID" INTEGER NOT NULL UNIQUE,
"Name" TEXT NOT NULL UNIQUE,
"Subfield" TEXT NOT NULL,
"Selected" TEXT NOT NULL DEFAULT 'False',
FOREIGN KEY("Name") REFERENCES "Main_Standards"("Subject"),
PRIMARY KEY("ID" AUTOINCREMENT)
)
这是导致抛出错误的查询:
INSERT OR IGNORE INTO Subjects(Name, Subfield)
SELECT DISTINCT
Subject,
Subfield
FROM Main_Standards
WHERE Standard_Type = 'A';
错误本身:
Execution finished with errors.
Result: foreign key mismatch - "Subjects" referencing "Main_Standards"
At line 1:
INSERT OR IGNORE INTO Subjects(Name)
SELECT DISTINCT
Subject
FROM Main_Standards
WHERE Standard_Type = 'A';