データベース - SQL 基本構文 - テーブル作成・削除・変更 - キーの変更

クラウディア 
1. 概要
2. プライマリキーを変更

1. 概要

 テーブルのプライマリキーにカラムをひとつ追加しようとして

ALTER TABLE
    テーブル名
ADD CONSTRAINT キー名
  PRIMARY KEY ADD (カラム名)
;
 とかできるかと思ったら、だめですな、エラーになりました。  本ページは、下記のサイトを参考にさせていただきました。
主キー・プライマリキーの追加、変更、削除 - オラクル・Oracle をマスターするための基本と仕組み

2. プライマリキーを変更

 既設のプライマリキーを変更する場合は、一度プライマリキーを削除して作成しなおすのが正攻法のようです。  「DB2」でやってみました。

ALTER TABLE テーブル名 DROP PRIMARY KEY;
ALTER TABLE テーブル名 ADD  CONSTRAINT キー名 PRIMARY KEY (カラム1[, カラム2, ...]);
 てなやり方でできました。  ただし、これ、「DB2」でちょっと大きなテーブルでやろうとすると「SQL1144N 現行トランザクションは、索引の作成が失敗したためにロールバックされました。原因 sqlcode: "-964"。関連付けれたトークン: 」てなことになりました。  また、「トランザクションログがフル」ですわ。  これに関しては、「データベース - IBM DB2 - トラブルシュート」でどうぞ。