create table d(id numeric(1), code varchar(2))
上記のテーブルを作成したら、どのようにして両方のフィールドと外部キーに複合プライマリキーを追加できますか?テーブルにコンポジットプライマリキーを追加する方法
create table d(id numeric(1), code varchar(2))
上記のテーブルを作成したら、どのようにして両方のフィールドと外部キーに複合プライマリキーを追加できますか?テーブルにコンポジットプライマリキーを追加する方法
Oracleでは、あなたはこれを行うことができます。主キーのすべての部分はNOT NULL
である必要があります。
alter table d add constraint pkc_Name primary key (id, code)
する必要があります。どのDBを使用しているかによって、基本的な主キー/インデックスには多くのオプションがあります。動作するはずクリスが提示し
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
ALTER TABLE
文は、しかし、最初のあなたは、列NOT NULL
を宣言する必要があります:
最初にテーブルを作成し、その後の手順でキーを追加する必要はありません。
この例では、外部キーで参照したいテーブル(Codes
)が存在することを前提としています。
CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)
あなたは私たちが参照できるテーブルを持っていない場合の例では、動作するように、このように1を追加します。
CREATE TABLE Codes (
Code [varchar](2) PRIMARY KEY
)
注:あなたは前に参照するテーブルを持っている必要があります外部キーを作成します。
他のキー制約を削除する – thanatorr
感謝 ALTER TABLEを – Domnic
卿のその働いていませんあなたに感謝しました – Domnic
@imonn:ただ好奇心が強い、できないch今のところeckですが、列の暗黙のNOT NULLか、列定義に追加する必要がありますか? – Thilo