【问题标题】:SQL (Oracle) Problems with foreign keySQL (Oracle) 外键问题
【发布时间】:2014-09-21 09:52:23
【问题描述】:

我在 apex(Oracle) 中设置 FOREIGN KEY 时遇到问题。首先我创建了地址表:

CREATE TABLE Address
(
  AddressID integer NOT NULL PRIMARY KEY,
  Country varchar2( 25 ) NOT NULL,
  City_Village varchar2( 25 ) NOT NULL,
  Street varchar2( 30 ) NOT NULL,
  HomeNumber varchar2( 10 ) NOT NULL,
  Apartment integer NULL
);

我尝试创建一个表客户端:

CREATE TABLE Client
(
  ClientID integer NOT NULL PRIMARY KEY,
  LastName varchar2( 25 ) NOT NULL,
  FirstName varchar2( 25 ) NOT NULL,
  BirthDate Date NOT NULL,
  Sex char( 1 ) NOT NULL,
  PhoneNumber varchar2( 15 ) NULL,
  Email varchar2( 25 ) NULL,
  IDNP varchar2( 13 ) UNIQUE NOT NULL,
  AddressId integer FOREIGN KEY REFERENCES Address( AddressID )
);

错误是 ORA-00907: 缺少右括号

我的代码有什么问题?有人可以帮帮我吗?

【问题讨论】:

    标签: sql foreign-keys


    【解决方案1】:

    试试这个

    CREATE TABLE Client
    (
      ClientID integer NOT NULL PRIMARY KEY,
      LastName varchar2( 25 ) NOT NULL,
      FirstName varchar2( 25 ) NOT NULL,
      BirthDate Date NOT NULL,
      Sex char( 1 ) NOT NULL,
      PhoneNumber varchar2( 15 ) NULL,
      Email varchar2( 25 ) NULL,
      IDNP varchar2( 13 ) UNIQUE NOT NULL,
      AddressId integer REFERENCES Address( AddressID )
    );
    

    ORA-00907: missing right parenthesis

    【讨论】:

    • 这个解决方案不能解释问题。
    【解决方案2】:
    CREATE TABLE Client
    (
      ClientID integer NOT NULL PRIMARY KEY,
      LastName varchar2( 25 ) NOT NULL,
      FirstName varchar2( 25 ) NOT NULL,
      BirthDate Date NOT NULL,
      Sex char( 1 ) NOT NULL,
      PhoneNumber varchar2( 15 ) NULL,
      Email varchar2( 25 ) NULL,
      IDNP varchar2( 13 ) UNIQUE NOT NULL,
      AddressId integer ,
      FOREIGN KEY AddressID REFERENCES Address( AddressID )
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多