使用Oracle Application Express for Oracle 11g
将外键约束添加到预先存在的表 .
Table: COMMUNICATION
COMMUNICATION-ID NUMBER
COMMUNICATIONTYPE_ID VARCHAR2(6)
CONTACT_ID NUMBER
COMMUNICATIONVALUE VARCHAR2(40)
Table: COMMUNICATIONTYPE
COMMUNICATIONTYPE-ID VARCHAR2(6)
在SQL命令界面中使用以下SQL
ALTER TABLE COMMUNICATION
ADD CONSTRAINT FK_COMMUNICATIONTYPE
FOREIGN KEY (COMMUNICATIONTYPE_ID)
REFERENCES COMMUNICATIONTYPE(COMMUNICATIONTYPE-ID)
返回以下内容:
ORA-00904 ::无效的标识符
没想到这可能更简单 . 到底怎么会出错?
2 回答
你确定该字段被称为
COMMUNICATIONTYPE-ID
吗?-
通常不在标识符中使用,因为它具有特殊含义 .如果我是你,我会重命名列
COMMUNICATIONTYPE_ID
要在标识符中使用它,您需要始终用双引号括起该标识符 .
COMMUNICATIONTYPE(COMMUNICATIONTYPE-ID)
Dash在Oracle名称中无效 . 我想你打算输入一个下划线 . 它很容易完成 .
作为COMMUNICATION表的DDL,同样的错误也可能是失败的.1277238_脚本也可能失败了 . 因此错误可能会被抛到多个地方 .