こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ALTER TABLE文の書き方について

お世話になります。

今、以下のような列からなるテーブルがあります。

・A(主キー)
・B(主キー)
・C(主キー)
・D(主キー)
・E(NOT NULL)
・F

列A、B、C、Dが複数列の組み合わせで主キーです。

このテーブルを以下のように変更したい場合、
どのようなALTER TABLE文を書けばできますでしょうか。

※列A、B、C、Dの主キーはやめて、列A、B、C、D、G、H、Iの
 複数列によるUNIQUE制約を設定。

・A(UNIQUE&NOT NULL)← 主キーはやめる
・B(UNIQUE&NOT NULL)← 主キーはやめる
・C(UNIQUE&NOT NULL)← 主キーはやめる
・D(UNIQUE&NOT NULL)← 主キーはやめる
・E(NOT NULL)
・F
・G(UNIQUE)← 追加
・H(UNIQUE)← 追加
・I(UNIQUE)← 追加

やりたいことは、列G、H、Iを追加して、
A、B、C、D、G、H、IでUNIQUEにしたく、かつ、
追加したG、H、IはNULLを許容したいということです。

A、B、C、D、G、H、Iの複数列の組み合わせで主キーも
考えましたが、主キーにするとNULLが許容できないと
いうことで、上記のようなレイアウトを考えました。

他に上手い方法があればご教授いただけると幸いです。

ちなみに列のデータ型はすべて可変長の文字列です。

投稿日時 - 2011-03-23 11:25:41

QNo.6614160

困ってます

質問者が選んだベストアンサー

RDBMS名とバージョンは、何ですか?

DDL(定義)は、RDBMSによる機能差、仕様差が多い部分です。

投稿日時 - 2011-03-23 18:08:06

補足

chukenkenkouさん

ご回答ありがとうございます。

RDBMSは、ややマイナーでして、富士通のSymfowareです。

また、バージョンは9.0になります。

よろしくお願いします。

投稿日時 - 2011-03-24 09:37:36

お礼

chukenkenkouさん

ご回答ありがとうございます。

その後、自分で調べ、SymfowareではALTER TABLEで、
やりたいことができないことがわかりましたので、
テーブルを作り直すこととしました。

よって本質問は締め切ります。

ありがとうございました。

投稿日時 - 2011-03-31 06:23:15

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)