You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已存在对应Film记录,为何仍触发ORA-02291外键约束错误?

外键约束错误原因及修复方案

错误根源

你在创建Scenariste表时,外键约束的字段完全写错了:
原约束语句是:

constraint fk_idScenariste
    FOREIGN KEY (idScenariste) REFERENCES Film (idFilm)

这里把Scenariste自身的主键idScenariste当成了外键字段,关联到Film的idFilm。但插入数据时,idScenariste是自增生成的1,而Film表中并没有idFilm=1的记录,所以触发ORA-02291错误——和你插入的idFilm=164184完全无关,因为这个字段根本没参与外键校验。

正确的表结构

外键应该绑定Scenariste中存储电影ID的idFilm字段,关联Film的主键idFilm。修正后的建表语句:

CREATE TABLE Scenariste
(
    idScenariste  NUMBER GENERATED ALWAYS as IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
    nom           VARCHAR2(100)  NOT NULL,
    idFilm        NUMBER         NOT NULL,
    constraint fk_scenariste_film
        FOREIGN KEY (idFilm) REFERENCES Film (idFilm)
);

验证修复

用修正后的表结构执行插入语句:

INSERT INTO scenariste (nom, idFilm) VALUES ('Paul Attanasio', 164184);

此时外键校验的是idFilm字段,Film表中存在idFilm=164184的记录,插入会成功。

内容的提问来源于stack exchange,提问作者Luis Angel Urena Lopez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 08:17:17