Oracle创建含外键表时遇ORA-00907错误,请求技术支持
ORA-00907 错误解决:创建带外键的Oracle表
ORA-00907 是缺少右括号的语法错误,你的SQL代码问题出在NAME_ID FOREIGN KEY REFERENCES TABLE_PRC4(id)这一行:
- 未给
NAME_ID列指定数据类型 - 列级外键的语法不符合Oracle要求
正确写法一:列级约束(简洁版)
先定义列的数据类型,直接通过REFERENCES声明外键:
CREATE TABLE table11_prc ( Family VARCHAR2(200), Name VARCHAR2(200), ID INTEGER NOT NULL PRIMARY KEY, NAME_ID INTEGER REFERENCES TABLE_PRC4(id) );
正确写法二:表级约束(推荐,更易维护)
单独定义外键约束,方便后续查看或修改约束:
CREATE TABLE table11_prc ( Family VARCHAR2(200), Name VARCHAR2(200), ID INTEGER NOT NULL PRIMARY KEY, NAME_ID INTEGER, CONSTRAINT fk_table11_prc_table_prc4 FOREIGN KEY (NAME_ID) REFERENCES TABLE_PRC4(id) );
额外注意事项
- 外键列
NAME_ID的数据类型必须和被引用表TABLE_PRC4的id列完全一致(比如对方是NUMBER,这里也得用NUMBER) - 确保
TABLE_PRC4表已存在,且id是该表的主键或唯一约束列
内容的提问来源于stack exchange,提问作者Its_faezeh0308
相关产品推荐
相关产品推荐

