お仕事: 2013年2月アーカイブ

う~む・・・

何か、俺のプログラムで吐いてる Cookies に問題があるんだろうが、InternetExplorer 以外(Firefox と Chrome)では問題が発生しないのでよくわからんわ。
まったく、InternetExplorer はどこまでプログラマ(&Web デザイナ)泣かせなんや・・・
早く Internet の世界から撤退してくれんかなあ>Microsoft

問題の症状というのが、「2回目以降の Cookies を受け取ってくれない」というもの。
Cookies を吐くページを二度目に開こうとすると、受信中の状態のまま何も表示されないのだ。
色々調べた結果、(Cookies を受信する時、ダイアログを開くようにしてるんだけど、それも開かないので)Cookies を受け取ってない(拒絶ではなく、例えば Cookies の終了がわからなくて、ずっと続きのデータが来るのを待っているような)様子。
上に書いたように、同じページを Firefox と Chrome で開いた時は一切出てこない症状なので、何か、InternetExplorer 的に気に入らないデータなんだろうな、俺の Cookies(^^;

ちなみに、その Cookie は検索ページの検索条件をセットしたもの。

search=prg=hoge.php<>h1=1<>h2=0<>h3=1<>kw=<>new_flg=;

って感じだ。
何の問題があるのやら。
ちゃんと日本語や、';'のような記号が入る時は URL エンコードしてるしなあ。

で、よくわかんないので、本来、Cookies の仕様的にはエンコードの必要が無いはずの「prg=hoge.php<>h1=1<>h2=0<>h3=1<>kw=<>new_flg=」の部分を丸ごとエンコードしたら、今のところ InternetExplorer での変な動作もしなくなった。
む~ん・・・

・・・と思って、今やってみたら、何度かやってるうちに同じ症状出ちゃったなあ・・・

・・・と思って、もう一度やってみたら、まったく同じデータで同じ操作しても症状出ないなあ・・・

いい加減にしろよ、InternetExplorer・・・
お前のせいで、Internet の世界はホントつまんなくなってんだよ!
大した話ではないし、PostgreSQL のドキュメントにも記載があることなので、わざわざここでメモるほどのことではないのだが、うっかりエラーを出してドキっとしたので書いておく。

PostgreSQL で、既存テーブルに列を追加し、NOT NULL にする手順。

例えば、hoge テーブルに、chin と man という列を追加するのなら、以下の SQL を実行する。

ALTER TABLE hoge ADD COLUMN chin VARCHAR(1);
ALTER TABLE hoge ADD COLUMN man VARCHAR(1);

これでテーブルの末尾に上記2つの列が追加されるが、NULL も許可する形で作られている。

ADD COLUMN では、

ALTER TABLE hoge ADD COLUMN chin VARCHAR(1) NOT NULL;

というように、CREATE TABLE する時の書式(NOT NULL)が使えない。
後で、SET NOT NULL してやらないといけない。

・・・が、ADD COLUMN した後で、そのまますぐに SET NOT NULL するとエラーになる。

hoge=# ALTER TABLE hoge ALTER COLUMN chin SET NOT NULL;
ERROR:  column "chin" contains null values

「既に NULL 値がセットされちゃってるから、NOT NULL 出来ねえよ。こんにゃろ!」と PostgreSQL に怒られてるわけだ。まあ、そりゃそうだよな。設定とデータの中身がいきなり不整合ってことになっちゃうからな(^^;

そこで、一旦、

UPDATE hoge SET chin='0', man='0';

という SQL を実行して、追加した列に値(例 '0')をセットする。
これで、

ALTER TABLE hoge ALTER COLUMN chin SET NOT NULL;
ALTER TABLE hoge ALTER COLUMN man SET NOT NULL;

を実行しても、エラーは出ず、ちゃんとテーブルに NOT NULL 項目として追加される。

ああ、面倒くさい(^^;

このアーカイブについて

このページには、2013年2月以降に書かれたブログ記事のうちお仕事カテゴリに属しているものが含まれています。

前のアーカイブはお仕事: 2013年1月です。

次のアーカイブはお仕事: 2013年4月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら