SQL - 缺少右括号

mda*_*shs 4 sql oracle oracle10g oracle11g

我试图在Oracle 11g中执行此脚本并收到以下错误,我不知道我在哪里错过了paranthesis或错误是什么,请帮助我弄明白这一点.

脚本:

CREATE TABLE User_Role ( 
  user_role_id INT  NOT NULL  , 
  Users_user_id INT  FOREIGN KEY REFERENCES Users(user_id), 
  User_Types_user_type VARCHAR(20) FOREIGN KEY REFERENCES User_Types(user_type),  
  PRIMARY KEY(user_role_id) 
)
Run Code Online (Sandbox Code Playgroud)

错误:

ORA-00907:遗失右侧的父母

Nic*_*nov 6

删除FOREIGN KEY条款.重写您的CREATE TABLE声明如下:

CREATE TABLE User_Role ( 
      user_role_id         INT  NOT NULL  , 
      Users_user_id        INT  REFERENCES Users(user_id), 
      User_Types_user_type VARCHAR(20) REFERENCES User_Types(user_type),  
      PRIMARY KEY(user_role_id) 
    )
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Oracle将生成约束名称.如果你想给他们更有意义的名字,你可以写下你的create table陈述如下:

  CREATE TABLE User_Role1 ( 
      user_role_id         INT  NOT NULL  , 
      Users_user_id        INT  , 
      User_Types_user_type VARCHAR(20) ,  
      constraint PK_YourTable PRIMARY KEY(user_role_id), 
      constraint FK_Table_1 foreign key(Users_user_id) REFERENCES Users(user_id),
      constraint FK_Table_2 foreign key(User_Types_user_type) REFERENCES User_Types(user_type)
    )
Run Code Online (Sandbox Code Playgroud)