【问题标题】: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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 2021-11-10
      • 2019-05-08
      • 1970-01-01
      相关资源
      最近更新 更多