データベース - 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 - トラブルシュート」でどうぞ。
|
|