Search code examples
sqloracle-databaseora-00907

ORA-00907: missing right parenthesis


CREATE TABLE Persons (
  P_Id int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  PRIMARY KEY (P_Id)
)

CREATE TABLE Orders (
  O_Id int NOT NULL PRIMARY KEY,
  OrderNo int NOT NULL,
  P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

I am getting an error while creating Table Orders:

ORA-00907: missing right parenthesis


Solution

  • If you are defining a foreign key inline with column definition then you shouldn't specify FOREIGN KEY. Drop it from the definition.

    Try this:

    CREATE TABLE Orders 
    ( 
      O_Id int NOT NULL PRIMARY KEY, 
      OrderNo int NOT NULL,
      P_Id int REFERENCES Persons(P_Id)
    )