ALTER TABLE distributors ADD COLUMN address varchar(30); テーブルから列を削除します。 ALTER TABLE distributors DROP COLUMN address RESTRICT; 1つの操作で既存の2つの列の型を変更します。 ALTER TABLE distributors ALTER COLUMN address TYPE varchar(80), ALTER … PostgreSQL 8.x 当初の想定より長い文字列を格納することになったのでサイズを大きくするなど。 ALTER TABLE video ALTER COLUMN title TYPE VARCHAR(1024); 変更後のサイズを超えるデータが格納されていたらエラーになる。 primary keyの追加はALTER TABLE文を使用します。primary keyに設定するカラムにはNOT NULL制約が設定されている必要があります。 ALTER TABLE employee MODIFY empno NULL カラムの桁数を変更する. ALTER TABLE distributors ADD COLUMN address varchar(30); テーブルから列を削除します。 ALTER TABLE distributors DROP COLUMN address RESTRICT; 1つの操作で既存の2つの列の型を変更します。 ALTER TABLE distributors ALTER COLUMN address TYPE varchar(80), ALTER …
alter table [テーブル名] alter column [カラム名] set not null; 設計の最初の段階で全ての項目がどうあるべきってなかなか把握しきれないので、後から変更することはよくあります。そんな時によくやるオペレーションなので覚えていると便利です。 Oracleなどでは ``` ALTER TABLE テーブル名 MODIFY カラム名 データ型 ``` でカラムのデータ型の変更を行えますが、 PostgreSQLではMODIFYを使っても変更できません。 PostgreSQLでカラムのデータ型を変更する場合は以下のようなSQL文を実行します。 ``` ALTER TABLE テーブル名 ALTER COLUMN カラム名 TYPE データ型 ```
ALTER TABLEで列の桁数を変更できる。列の桁数を縮小する場合、既存データの最大桁数より小さくすることはできない。 ALTER TABLE emp MODIFY (ename VARCHAR2(100)) テーブルからカラムを削除する alter table ir_calendar alter text_col type character(256); としたところ、エラーになる。 なんと、動いているPostgreSQLのバージョンが、7.4であった。このSQLは8.0でないと動かない。 ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77; デフォルト値を削除するには常に次のようにします。 ALTER TABLE products ALTER COLUMN price DROP DEFAULT; これはデフォルトを NULL に設定することと同等です (少なくとも PostgreSQL では)。