为什么我收到无效的标识符错误?

时间:2018-04-09 19:27:10

标签: sql oracle

我已经创建了两个没有问题的表。他们是:

CREATE TABLE region
( 
     regionid CHAR NOT NULL,
     regionname VARCHAR(25) NOT NULL,
     PRIMARY KEY (regionid) 
);

CREATE TABLE store
( 
     storeid VARCHAR(3) NOT NULL,
     storezip CHAR(5) NOT NULL,
     regionid CHAR NOT NULL,
     PRIMARY KEY (storeid),
     FOREIGN KEY (regionid) REFERENCES region(regionid) 
);

但是,当我尝试输入下表时出现错误:

CREATE TABLE employee  
( 
     employeeid VARCHAR(3) NOT NULL,  
     firstN CHAR(25) NOT NULL,  
     lastN CHAR(25) NOT NULL,  
     PRIMARY KEY (employeeid),
     FOREIGN KEY (storeid) REFERENCES store(storeid) 
);

我得到的错误是:

  

ORA-00904:“storeid”:标识符无效

为什么我收到此错误?谢谢

1 个答案:

答案 0 :(得分:4)

你有:

FOREIGN KEY (storeid) REFERENCES store(storeid) 

但你还没有宣布storeid。您需要在指定它是外键之前声明它。

其他说明:

  • 不要使用char没有长度。如果是一个字符,请将其声明为。
  • 我认为id列应该是数字而不是字符串。
  • 当您使用char()时,请勿使用varchar2()char()用空格填充值,这通常是不合需要的。