web-dev-qa-db-ja.com

複合主キーをテーブルに追加する方法

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

上記の表を作成した後、両方のフィールドに複合主キーと外部キーを追加するにはどうすればよいですか?

28
Domnic

Oracleでは、これを行うことができます:

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

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

それを行う必要があります。使用するDBに応じて、基本的なプライマリキー/インデックスには多くのオプションがあります。

30
Chris W

ALTER TABLEステートメントはChrisによって提示されますが、最初に列を宣言する必要がありますNOT NULL。主キーのすべての部分はNOT NULL

6
Thilo

最初にテーブルを作成してから、以降の手順でキーを追加する必要はありません。テーブルの作成中に主キーと外部キーの両方を追加できます。

この例では、外部キーで参照するテーブル(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
Jon Crowell

Sql Server Management Studio Designerを使用している場合は、両方の行を選択(Shift +クリック)し、主キーを設定するだけです。

enter image description here

2
Brent