如何将复合主键添加到表

Dom*_*nic 28 sql sql-server-2005 foreign-keys primary-key

create table d(id numeric(1), code varchar(2))
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*s W 30

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

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


Sim*_*son 29

在Oracle中,您可以这样做:

create table D (
  ID numeric(1),
  CODE varchar(2),
  constraint PK_D primary key (ID, CODE)
);
Run Code Online (Sandbox Code Playgroud)


Thi*_*ilo 6

ALTER TABLEChris提供的声明应该有效,但首先需要声明列NOT NULL.主键的所有部分都需要NOT NULL.


Jon*_*ell 5

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

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

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

如果您没有可供我们参考的表格,请添加这样的表格,以便示例能够正常工作:

CREATE TABLE Codes (
    Code [varchar](2) PRIMARY KEY   
    )
Run Code Online (Sandbox Code Playgroud)

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