我已经创建了两个没有问题的表。他们是:
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”:标识符无效
为什么我收到此错误?谢谢
答案 0 :(得分:4)
你有:
FOREIGN KEY (storeid) REFERENCES store(storeid)
但你还没有宣布storeid
。您需要在指定它是外键之前声明它。
其他说明:
char
没有长度。如果是一个字符,请将其声明为。char()
时,请勿使用varchar2()
。 char()
用空格填充值,这通常是不合需要的。