尝试使用SQL代码创建表,但出现错误:
缺少关键字
关于外键。
CREATE TABLE Staff
(
staffID VARCHAR(5) NOT NULL,
name VARCHAR(50),
position VARCHAR(30),
branchID VARCHAR(5),
PRIMARY KEY (staffID),
FOREIGN KEY (branchID) REFERENCES Branch ON UPDATE CASCADE
);
与其他RDBMS(例如MySQL)不同,Oracle不支持ON UPDATE
外键中的子句。您只需要删除声明的那部分。
尝试:
CREATE TABLE Staff (
staffID VARCHAR(5) NOT NULL,
name VARCHAR(50),
position VARCHAR(30),
branchID VARCHAR(5),
PRIMARY KEY (staffID),
FOREIGN KEY (branchID) REFERENCES Branch(branchID) --ON UPDATE CASCADE
);
这种Oracle行为背后的逻辑是,不应更改所引用的列,因为它必须是PRIMARY KEY
(或UNIQUE
列)。我相信这种限制是有道理的……他们只是不想给用户足够的绳索来挂自己。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句