2_04_30-テーブル定義変更

PHPとPostgreSQLを利用したWEBシステムの開発例を掲載していきます。腕時計 販売サイト my-watch.biz



● 2_04_30-テーブル定義変更

 一度設定したテーブル定義を変更することができます。

カラムの追加
ALTER TABLE テーブル名 ADD カラム名 型

カラム名の変更
ALTER TABLE テーブル名 RENAME 現カラム名 TO 新カラム

デフォルト値の設定
ALTER TABLE テーブル名 ALTER カラム名 SET DEFAULT デフォルト値

デフォルト値の削除
ALTER TABLE テーブル名 ALTER カラム名 DROP DEFAULT

テーブル名の変更
ALTER TABLE 現テーブル名 RENAME TO 新テーブル名


 先ほどのテーブルをまた作って下さい。
Create Table e_shouhin_test_t(

e_shouhin_id VARCHAR(20) NOT NULL -- 商品ID

,e_shouhin_nmae VARCHAR(200) NOT NULL -- 商品名

,e_shouhin_color VARCHAR(20) -- 色

,e_shouhin_size VARCHAR(10) -- サイズ

,e_shouhin_kakaku int NOT NULL -- 価格

,e_shouhin_group VARCHAR(10) NOT NULL -- 商品グループ

,e_shouhin_date timestamp NOT NULL -- データ入力日

,PRIMARY KEY ( e_shouhin_id )
);


 カラムの追加を行います。ここでは仮に販売中か、何らかの理由で販売を止めているかのフラグとします。これを実行します。

ALTER TABLE e_shouhin_test_t ADD sale_flug VARCHAR(5)


 最後に「sale_flug」が追加されています。


 PostgreSQLではカラムを追加する場所を指定することができません。

 たとえば下記の内容のテーブルを作ったとします。
 もしファックス番号を忘れていたら、追加されるのは一番後ろです。
 そうすると非常に見難い内容になります。また忘れていたものをどんどん後ろに追加したら・・・。

名前
住所 都道府県
住所 1
住所 2
電話番号
携帯番号
メール・アドレス
携帯メール・アドレス
勤め先名
勤め先電話番号


 あまりにテーブルの仕様が分かり難くなるようでしたら、テーブルを作り直す事をお勧めします。
 余談ですが、機能が劣るMySQLは追加カラムの場所を指定することができます。

 次はカラム名を変更します。
 さっき追加したカラム名ですが、一応頭に「e_」を付けて名前を統一しているので、それに合わせます。下記を実行して下さい。

ALTER TABLE e_shouhin_test_t RENAME sale_flug TO e_sale_flug


 テーブルを更新すると名前が変更されています。


 今度はデフォルト値を設定します。下記を実行して下さい。フラグのデフォルト値を「0」にします。

ALTER TABLE e_shouhin_test_t ALTER e_sale_flug SET DEFAULT 0


 デフォルト値が追加されました。


 次は設定したデフォルト値を削除します。

ALTER TABLE e_shouhin_test_t ALTER e_sale_flug DROP DEFAULT


 デフォルト値が削除されています。


 次はテーブル名を変更します。「e_shouhin_enshu_t」に変更します。

ALTER TABLE e_shouhin_test_t RENAME TO e_shouhin_enshu_t


 テーブルを更新すると、名称が「e_shouhin_enshu_t」に変更されています。


 データベースの名前は変更することはできません、一度削除した作り直しになります。

 たいがいの変更は可能ですが、設計段階でできるだけ変更が無いように努めましょう。
 辻褄合わせがひどくなると、すごく分かり難いものが出来上がると困りますから。

 個人的な意見ですが、英和の辞書を引かないと分からないような命名は避けたほうがいいと思います。


戻る

Copyright (c) 2007 MSweb All Rights Reserved

腕時計 クロノグラフ(時計)のメンズ専門販売サイトカシオ G-SHOCK、Baby-G(腕時計)専門の通信販売サイトG-SHOCK、Baby-G専門通販サイト 運営ブログ

腕時計 女性専用 販売のladies-watch.biz腕時計 メンズ(男性)専門販売のmens-watch.biz