当前位置: 首页 > 面试题库 >

SQL错误:ORA-02298:无法验证(SYSTEM.AEROPUERTO_FK)-找不到父项

淳于俊迈
2023-03-14
问题内容

我在Oracle SQL Developer上遇到以下错误:

Error starting at line 1 in command:
    ALTER TABLE AEROPUERTO ADD CONSTRAINT AEROPUERTO_FK FOREIGN KEY (CODIGO_CIUDAD) REFERENCES CIUDAD(CODIGO)

Error report:
    SQL Error: ORA-02298: cannot validate (SYSTEM.AEROPUERTO_FK) - parent keys not found
    02298. 00000 - "cannot validate (%s.%s) - parent keys not found"
    *Cause:    an alter table validating constraint failed because the table has
               child records.
    *Action:   Obvious

为什么?


问题答案:

AEROPUERTO该点中有一些记录,这些记录在中不存在CIUDAD

要找出哪些记录AEROPUERTO存在此类问题:

select * from AEROPUERTO where CODIGO_CIUDAD not in (select CODIGO from CIUDAD)

如果结果集是不是空的,你 这样做 有orphanaged记录。您需要添加丢失的CIUDAD记录才能创建AEROPUERTO_FK外键,
或者将 所有错误记录更新AEROPUERTO.CODIGO_CIUDAD为null(如果这是可为空的字段,但是您将丢失这些机场记录的城市信息)。



 类似资料:
  • 我是Oracle SQL新手,我下载了Oracle SQL developer,它附带了一些您可能知道的预编程表。所以我选择了(Employees)表来练习我的Insert语句。我运行下面的脚本,我得到一个错误,纸条是 列的顺序如下: 错误是: 从命令中的第1行开始出错- 插入员工值(1000、'Anouar'、'Seljouki'、'Seljouki84@gmail.com,0662777081

  • 问题内容: 我使用此查询创建了一个表现 在,当我尝试使用插入一些数据时,遇到此错误。 我做错了什么? 问题答案: 不是日期,而是一个字符串。 当使用session参数的值作为格式掩码将Oracle非日期文字插入到列中时,Oracle将对其进行隐式处理( 注意:这是一个session参数,属于客户端;它不是全局设置 )。如果非日期文字与该格式匹配,则它将起作用(如果不匹配,则它将不起作用)-但是,如

  • 对于某人来说,这是一个非常简单的方法,下面的插入内容给了我 ORA-01722:无效的数字 为什么?

  • 这是我的桌子。 我运行此插入语句 我得到这个错误信息: 从命令中的第1行开始出错-插入计划(SCHEDULE_IDARRV_TIMEDEP_TIMEBUS_TRANSFERSBUS_IDTRAVEL_DIRECTIONWEEK_DAY)值(SEQ_SCHEDULE.NEXTVAL,'10','11','White Oak','2','North','4') 错误报告-SQL错误:ORA-01722

  • 一个非常容易的人,下面的插入是给我

  • 我尝试按如下方式创建父表和子表: 我创建了两个程序来插入记录: 我已经创建了SSIS包来调用这两个过程。父记录插入成功。但是对于子表过程,我得到以下错误: “[Execute SQL Task]错误:执行查询”BEGIN GetSourceLogId(?,?输出);终止失败,出现以下错误:“违反了ORA-02291:完整性约束(PATIENTMDR.FK_SOURCELOG_PROCESSLOG)