外键中的 Oracle 数据库错误消息

桑切斯

我是 oracle 的新手,并试图创建一个带有外键的表,但是,错误不断出现,我不知道出了什么问题。

这是小代码,当我尝试创建“UNIDADESMEDIDA”时,会弹出错误:

create table TIPOUNIDAD(
    ID_TIPOUNIDAD char(20) not null,
    constraint TIPOUNIDAD_PK primary key(ID_TIPOUNIDAD)
);

create table UNIDADESMEDIDA(
    ID_UNIDADMEDIDA integer not null,
    constraint UNIDADESMEDIDA_PK primary key(ID_UNIDADMEDIDA),
    constraint TIPOUNIDAD_FK foreign key(ID_TIPOUNIDAD) references TIPOUNIDAD(ID_TIPOUNIDAD)
);

Error report -
ORA-00904: "ID_TIPOUNIDAD": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

有什么建议吗?

亚历克斯·普尔

声明外键约束不会自动创建列;您仍然需要单独声明:

create table UNIDADESMEDIDA(
    ID_UNIDADMEDIDA integer not null,
    ID_TIPOUNIDAD char(20),
    constraint UNIDADESMEDIDA_PK primary key(ID_UNIDADMEDIDA),
    constraint TIPOUNIDAD_FK foreign key(ID_TIPOUNIDAD) references TIPOUNIDAD(ID_TIPOUNIDAD)
);

两个表中的列名不必相同,即使父列不是,子列也可以为空。但是数据类型需要匹配。

顺便说一句,很少有理由使用该char数据类型,您可能应该将父列和子列都更改为varchar2(20).

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章