PostgreSQL 8.1.3→PostgreSQL 9.1.2に変更したらJoinでトラブった件
Mar 23, 2012先月、とあるシステムをPostgreSQL 8.1.3→PostgreSQL 9.1.2にアップグレードしたら、既存システムが動かなくなった。
よく調べてみるとSQLのJoin部分のKeyの型がcharacterだと接続エラーになっていました。
解決方法
で、単純に下記のSQLで型を変更しようと思ったのですが、場所によっては下記のSQLでは型変更ができないところがありました。
1 |
ALTER TABLE toiawase ALTER COLUMN kokyaku_id TYPE integer USING kokyaku_id::integer; |
解決方法(IndexやViewがある場合)
また調べてみると変更しようとしたKeyがIndexやViewの中でも使用されていることが判明
なので、変更対象のKeyが使用されているIndexやViewをいったん削除して、上記SQLを再度実行して、その後に、削除したIndexやViewを復元させて、
事無きを得ました。ちゃんちゃん
1 2 3 4 5 6 7 8 |
#Indexの削除 DROP INDEX name toiawase_Index; #型の変更 ALTER TABLE toiawase ALTER COLUMN kokyaku_id TYPE integer USING kokyaku_id::integer; #Indexの作成 CREATE INDEX toiawase_Index ON toiawase USING btree (kokyaku_id); |
No Comments, Comment or Ping
Reply to “PostgreSQL 8.1.3→PostgreSQL 9.1.2に変更したらJoinでトラブった件”
Warning: Undefined variable $user_ID in /home/sazaeau/mizoshiri.com/public_html/blog.mizoshiri.com/wp-content/themes/grid_focus_public_mizo/comments.php on line 66
You must be logged in to post a comment.