我正在创建一个包含两个主要和外来值的表。我不知道如何在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
)
答案 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)
。
在数据库设计中,复合键是由两个或多个唯一标识实体事件的属性组成的键。