如何将复合主键添加到表

时间:2009-08-29 09:45:31

标签: sql sql-server-2005 foreign-keys primary-key

create table d(id numeric(1), code varchar(2))

创建上表后,如何在两个字段和外键上添加复合主键?

5 个答案:

答案 0 :(得分:29)

alter table d add constraint pkc_Name primary key (id, code)

应该这样做。基本主键/索引有很多选项,具体取决于您使用的数据库。

答案 1 :(得分:26)

在Oracle中,您可以这样做:

create table D (
  ID numeric(1),
  CODE varchar(2),
  constraint PK_D primary key (ID, CODE)
);

答案 2 :(得分:6)

Chris提供的ALTER TABLE语句应该有效,但首先需要声明列NOT NULL。主键的所有部分都必须为NOT NULL

答案 3 :(得分:4)

您不需要先创建表,然后在后续步骤中添加密钥。您可以在创建表时添加主键和外键:

此示例假定存在我们希望使用外键引用的表(Codes)。

CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)

如果您没有我们可以引用的表,请添加一个这样的表,以便该示例可以工作:

CREATE TABLE Codes (
    Code [varchar](2) PRIMARY KEY   
    )

注意:在创建外键之前,您必须有一个要引用的表。

答案 4 :(得分:2)

如果使用Sql Server Management Studio Designer,只需选择两行(Shift +单击)和设置主键。

enter image description here