SQL:主键和外键

时间:2015-05-03 22:49:53

标签: sql oracle oracle11g

我正在创建一个包含两个主要和外来值的表。我不知道如何在SQL中创建它们。这是我做的,但我得到错误,必须只有一个主键。什么是正确的方法?

  CREATE TABLE movie_director(
    director_id CHAR(8)
    constraint pk_director_id_movie_director
    PRIMARY KEY
    constraint fk_director_id_movie_director
    REFERENCES director,
    movie_id VARCHAR(30)
    constraint pk_movie_id_movie_director
    PRIMARY KEY
    constraint fk_movie_id_movie_director
    REFERENCES movie





)

2 个答案:

答案 0 :(得分:1)

您似乎在寻找的是复合主键。将表定义更改为以下内容:

CREATE TABLE movie_director(
  director_id CHAR(8)
    constraint fk_director_id_movie_director
    REFERENCES director,
  movie_id VARCHAR(30)
    constraint fk_movie_id_movie_director
    REFERENCES movie,
  CONSTRAINT PK_MOVIE_DIRECTOR
    PRIMARY KEY (DIRECTOR_ID, MOVIE_ID));

分享并享受。

答案 1 :(得分:0)

你的错误似乎很清楚。

表上只能有一个PRIMARY KEY

您需要创建一个COMPOUND PRIMARY KEY,其中包含两列(director_id,movie_id)

来自wikipedia:

  

在数据库设计中,复合键是由两个或多个唯一标识实体事件的属性组成的键。