Oracle创建带外键的表触发ORA-00904 LID无效标识符错误如何解决
报错原因
外键约束的作用是将当前表的某个字段和关联表的主键/唯一键绑定,所以你需要先在STAFF表中定义要作为外键的LID字段,才能在后续的外键约束中引用该字段。你当前的STAFF表字段列表中没有声明LID字段,直接在外键约束中引用,Oracle无法识别该字段,因此抛出ORA-00904无效标识符错误。
解决方法
在STAFF表的字段定义部分新增LID字段,字段类型必须和LOC表中作为关联键的LID字段(INTEGER类型)完全一致,再声明外键约束即可。
修正后的建表语句如下:
CREATE TABLE STAFF ( EID INTEGER PRIMARY KEY, NAME VARCHAR(50), SURNAME VARCHAR(50), HIREDATE DATE, LID INTEGER, -- 新增和LOC表LID类型一致的字段 FOREIGN KEY (LID) REFERENCES LOC(LID) );
如果要求员工必须关联对应地址,可以给LID字段增加NOT NULL约束:LID INTEGER NOT NULL。
内容的提问来源于stack exchange,提问作者Ppp Lll
相关产品推荐
相关产品推荐

