【问题标题】:Missing right parenthesis error in Oracle tableOracle表中缺少右括号错误
【发布时间】:2020-11-09 14:39:17
【问题描述】:
CREATE TABLE Countries
(CountryID INT NOT NULL PRIMARY KEY,
CountryName VARCHAR2(100) NOT NULL,
RegionID INT FOREIGN KEY REFERENCES Regions(RegionID)
);
不断向我抛出这个:
ORA-00907: missing right parenthesis
我做错了什么?
【问题讨论】:
标签:
sql
oracle
foreign-keys
create-table
【解决方案1】:
内联外键语法不采用FOREIGN KEY 关键字。
考虑:
CREATE TABLE Countries (
CountryID INT NOT NULL PRIMARY KEY,
CountryName VARCHAR2(100) NOT NULL,
RegionID INT REFERENCES Regions(RegionID)
);
或者,您可以在另一行声明外键,如下所示:
CREATE TABLE Countries (
CountryID INT NOT NULL PRIMARY KEY,
CountryName VARCHAR2(100) NOT NULL,
RegionID INT,
CONSTRAINT fkRegionID FOREIGN KEY (RegionID) REFERENCES Regions(RegionID)
);
这也有效:
CREATE TABLE Countries (
CountryID INT NOT NULL PRIMARY KEY,
CountryName VARCHAR2(100) NOT NULL,
RegionID INT,
FOREIGN KEY (RegionID) REFERENCES Regions(RegionID)
);
Demo on DB Fiddle