【问题标题】:Oracle SQL error ORA-00907: missing right parenthesisOracle SQL 错误 ORA-00907:缺少右括号
【发布时间】:2013-04-04 23:36:18
【问题描述】:

你们还好吗?

基本上我已经编写了这段 SQL 代码来创建一个表,但我不断收到标题中所述的错误,知道为什么吗?

代码如下:

    CREATE TABLE staff(
    staffID INT NOT NULL PRIMARY KEY,
    firstName VARCHAR2(20),
    lastName VARCHAR2(20),
    addressLine_1 VARCHAR2(30),
    city VARCHAR2(15),
    postcode VARCHAR2(7),
    telephone VARCHAR2(15),
    salary DECIMAL (19,4),
    branchID INT FOREIGN KEY REFERENCES branches(branchID)
    );

这也是我的“分支”表的代码

    CREATE TABLE branches
    (branchID int NOT NULL PRIMARY KEY,
    addressLine_1 VARCHAR2(30),
    city VARCHAR2(15),
    postcode VARCHAR2(7),
    telephone VARCHAR2(15),
    manager VARCHAR2(20));

任何帮助将不胜感激!

谢谢!

【问题讨论】:

    标签: sql database oracle


    【解决方案1】:

    一些建议:

    首先确保branches 表已经创建。

    其次,我将创建表代码更改为以下内容:

    CREATE TABLE staff(
        staffID INT NOT NULL PRIMARY KEY,
        firstName VARCHAR(20),
        lastName VARCHAR(20),
        addressLine_1 VARCHAR2(30),
        city VARCHAR2(15),
        postcode VARCHAR2(7),
        telephone VARCHAR2(15),
        salary DECIMAL (19,4),
        branchID INT,
        constraint fk_branchId FOREIGN KEY (branchID) REFERENCES branches(branchID)
        );
    

    SQL Fiddle with Demo。创建表时创建FOREIGN KEY的语法是:

    CREATE TABLE table_name
    (
      column1 datatype null/not null,
      column2 datatype null/not null,
      ...
    
      CONSTRAINT fk_column
        FOREIGN KEY (column1, column2, ... column_n)
        REFERENCES parent_table (column1, column2, ... column_n)
    );
    

    【讨论】:

    • @blufeet 在一个表中是否可以有多个外键?
    【解决方案2】:

    这里是staff1表的创建

    CREATE TABLE staff
    (
    staffID INT NOT NULL PRIMARY KEY,
    firstName VARCHAR2(20),
    lastName VARCHAR2(20),
    addressLine_1 VARCHAR2(30),
    city VARCHAR2(15),
    postcode VARCHAR2(7),
    telephone VARCHAR2(15),
    branchID int,
    salary DECIMAL (19,4),
    CONSTRAINT BRANCH_fk FOREIGN KEY(branchID) REFERENCES branches(branchID)
    )
    SQL> /
    Table created.
    

    请使用约束名称,以便于查找错误。

    【讨论】:

      【解决方案3】:
      create table medication (
      id int not null primary key, 
      name varchar(20),
      mudslig price number (10),
      protect date not null default (getdate()),
      finish date not null default (getdate()),
      company proect varchre2 (20),
      shelf id int,
      chemistid int,
      constraint shelf_fk foreign key (shelf id) refences shelf (shelf id),
      constraint chemist_fk foreign key (chemistid) refences chemist (chemistid)
      );
      

      请使用约束名称,以便于查找错误。

      【讨论】:

        猜你喜欢
        • 2018-07-18
        • 2016-10-23
        • 1970-01-01
        • 1970-01-01
        • 2017-03-11
        • 2013-08-24
        • 2018-03-27
        • 2023-03-13
        相关资源
        最近更新 更多