ORA-00905缺失关键字错误求助:创建Ingresos表失败排查
ORA-00905错误排查及修正
你的SQL语句存在两个核心问题,直接导致了"缺失关键字"错误:
- 外键约束语法不完整:Oracle中创建外键必须通过
REFERENCES关键字指定关联的父表及对应字段,你仅声明了foreign key(字段名),缺少了关键的关联定义部分。 - 外键依赖字段未定义:你声明的外键
rutPac和numSala并未出现在当前表的字段列表中,外键必须基于当前表已存在的字段创建。
以下是修正后的完整SQL示例(假设关联的父表为Pacientes和Salas,对应主键字段分别为rutPac和numSala,你可根据实际业务调整父表名和字段类型):
create table Ingresos( codIngreso varchar2(6) not null, fechaIngreso date, costeIngreso number(9), -- 添加外键依赖的字段,类型需与父表对应字段一致 rutPac varchar2(12), numSala number(3), constraint ingresos_pk primary key(codIngreso), -- 补全外键的REFERENCES关联语法 constraint rut_pac_fk foreign key(rutPac) references Pacientes(rutPac), constraint num_sala_fk foreign key(numSala) references Salas(numSala) );
说明:
- 先在字段列表中补充
rutPac和numSala,字段类型必须与关联父表的主键类型完全匹配,否则会触发类型不匹配的错误。 - 每个外键约束都通过
REFERENCES明确指定了关联的父表及对应字段,这是Oracle外键约束的必填语法。
内容的提问来源于stack exchange,提问作者Bern1Egord
相关产品推荐
相关产品推荐

