我正在处理一项希望我在表上编写一些参照完整性约束的任务。它要求我确保结果中的每场战斗也在战斗中提及,并通过将引用值设置为 NULL 来处理所有违规行为。
我正在使用以下模式
Battles(
name VARCHAR(255) PRIMARY KEY,
date VARCHAR(255),
)
Outcomes(
ship VARCHAR(255),
battle VARCHAR(255),
RESULT VARCAHR(255),
PRIMARY KEY(ship, battle)
)
我正在尝试像这样添加foregin键:
alter table outcomes
add foreign key (battle)
references battles(name)
on delete set null
on update cascade;
我收到以下错误:
SQL error:
ERROR: insert or update on table "outcomes" violates foreign key constraint "outcomes_battle_fkey"
DETAIL: Key (battle)=(Pearl Harbor
我知道这是因为“珍珠港”在 OUTCOMES 但不在 BATTLES 中,我想知道是否有某种方法可以忽略这一事实并设置外键?