忍者ブログ
  ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
Admin*Write*Comment
[683]  [681]  [680]  [679]  [678]  [677]  [676]  [675]  [674]  [673]  [672

postgresql は普段あまり使わないDBなのでついついスキーマ変更用のSQLを忘れてしまいますね。゚・(>Д<)・゚。

ということで備忘録。
postgresql 9.2 の場合です。
8とか7はおそらく違います。


ALTER TABLE table_name ALTER COLUMN column_name
  SET
    DATA TYPE data_type;


table_name:  対象のテーブル名
column_name: スキーマ変更対象のカラム名
data_type: 新しいスキーマ
 ex.)
 varchar(255)
 bigint


http://www.postgresql.jp/document/9.2/html/sql-altertable.html


14.10.27 追記
スキーマ長を増やすだけ(型は変えずに長さだけ変える場合)とは違い、型そのものを変更する場合は失敗する場合が多々あります。
例えば元のカラムがvarchar(10)で、integer(10)に変更を試みようとした場合でも、カラムの中には一見数字しか見えなくても型変換に失敗し、変更できないことがあります。
その場合はUSINGを使用して、元のデータと後のデータを指定してあげることで解決が可能です。
例を記載します。

ALTER TABLE table_name ALTER COLUMN available 
SET
  DATA TYPE BOOLEAN
    USING CASE
      WHEN available = 1
      THEN TRUE
      WHEN available = 2
      THEN FALSE
      END;



それでも失敗する場合は、INDEXをいったん削除しましょう。

拍手

PR



COMMENT
Name
Title
Color
Mail
URL
Text
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret
ブログ内検索
カレンダー
04 2017/05 06
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 30 31
カウンター
最新コメント
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
ブログパーツ
アバター
Copyright © アナログを愛するデジタル生活館 All Rights Reserved.
photo by Kun material by Atelier Black/White Template by Kaie
忍者ブログ [PR]