プロが教えるわが家の防犯対策術!

こんにちは。いつもお世話になります。

PostgreSQLのversion7.2.8で、「not null」制約の追加、削除の方法をおたずねします。よろしくお願いします。

ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL;

で試したところ、syntaxエラー(構文エラー)で失敗。

ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL;

で試してみても、同じくsyntaxエラーです。

version7.2.8が原因でしょうか?
また、version7.2.8でも「not null」制約の追加、削除が
できる他の方法はありますでしょうか?

テーブルを作り直さずに、
既存のテーブルのカラムへの制約の追加、削除をしようとしています。

よろしくお願いします。

A 回答 (1件)

マニュアルを見てみたところ、ALTER TABLEでの既存列のNOT NULLの追加や削除は、PostgreSQL 7.3で実装のようですね。



>テーブルを作り直さずに、既存のテーブルのカラムへの制約の追加、削除をしようとしています。

ALTER TABLEで、NOT NULLを許可しない列の追加などを行うと、内部的にはテーブルの作り直しが行われますよ?
    • good
    • 0
この回答へのお礼

回答いただき、ありがとうございます!
やはり出来ないのですね><

>内部的にはテーブルの作り直しが行われますよ?
ALTER TABLEは内部的に作り直しになるんですね。なるほど。

ということは、別のテーブルを作成して、
中身を移すという方法でやってみます。

勉強になりました!ありがとうございます!!!

お礼日時:2009/01/28 17:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!