2009-08-29 16 views

答えて

24

Oracleでは、あなたはこれを行うことができます。主キーのすべての部分はNOT NULLである必要があります。

+0

感謝 ALTER TABLEを – Domnic

+0

卿のその働いていませんあなたに感謝しました – Domnic

+0

@imonn:ただ好奇心が強い、できないch今のところeckですが、列の暗黙のNOT NULLか、列定義に追加する必要がありますか? – Thilo

28

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) 
); 
+0

TR制約が主キー(ID、ビン)をpk_id追加(ID数値(1)、ビンはvarchar(10)) ALTER TABLE そのSQL Server 2005で – Domnic

+0

を働いていないことコマンドはノイが働いていたが、uは、テーブルTR(IDの数値(1)、ビンはvarchar(10))を作成 – Domnic

+0

を働いているTR制約を追加主キー(ID、ビン)をpk_id なぜ – Domnic

6

ALTER TABLE文は、しかし、最初のあなたは、列NOT NULLを宣言する必要があります:

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) 
) 

あなたは私たちが参照できるテーブルを持っていない場合の例では、動作するように、このように1を追加します。

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

注:あなたは前に参照するテーブルを持っている必要があります外部キーを作成します。

2

Sql Server Management Studio Designerを使用している場合は、両方の行(Shift +クリック)とSet Primary Keyを選択するだけです。テーブルTR作成

enter image description here

+0

他のキー制約を削除する – thanatorr

関連する問題