トップページphp
1001コメント345KB

PostgreSQL

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/09(水) 11:36ID:GHX.oCXo
PostgreSQLについて語りましょう。
関連アプリケーション特有の話題は、以下のスレッドへ。

☆関連スレッド
[PHP + PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=983128806
[PHP以外+PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=988929199
[MySQL vs PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=989341364
0713nobodyさん02/10/31 02:50ID:???
Windows上でPostgreSQLを動かすには、
Cygwin上で動かす方法があると思いますが、
その環境で実際運用しているケースってあるんでしょうか?
0714nobodyさん02/10/31 02:52ID:???
>>713
実験レベルと心得よ
0715nobodyさん02/10/31 21:26ID:???
>>670
遅レスだが、誰も答えてないみたいなので。

シェルスクリプトのプロセスの生成、実行、破棄の過程をよく考えれば理由は自ずと分かると思うが、
alias start='cd /usr/local/pgsql/data'
でお望みの結果が得られると思う。


詳しくは、シェルスクリプト関連のスレへ。
0716AAA02/10/31 21:54ID:qzNXYl3V
>>709

Postgresql の解説書でシーラカンス本って、Oreilly から
出ているやつですか?
0717nobodyさん02/11/01 02:26ID:yeaPQaRo
これって、postmasterの2重起動っすか?

[postgres pgsql]$ ps aux | grep post
postgres 2000 0.0 0.4 5056 840 ? SN Oct31 0:02 [postmaster]
postgres 2661 0.0 0.0 4916 0 ? SWN Oct31 0:00 [postmaster]
postgres 3479 0.0 1.1 5072 2308 ? SN Oct31 0:00
/usr/bin/postgres
postgres 3482 0.0 1.1 5072 2308 ? SN Oct31 0:00
/usr/bin/postgres
root 13094 0.0 0.5 2120 1056 pts/0 S 02:00 0:00 login --
postgres
postgres 13095 0.0 0.4 1692 924 pts/0 S 02:00 0:00 -bash
postgres 13624 0.0 0.3 2324 688 pts/0 R 02:07 0:00 ps aux
postgres 13625 0.0 0.4 1692 924 pts/0 R 02:07 0:00 -bash
0718ois\\\02/11/01 08:22ID:ECdYK2+d
>>715
Thank you

postgres
のuser directory /home/postgres/
のどれかのファイルに書くのですね
0719質問age02/11/01 11:02ID:W+9xVgU/
pg_xlog に以下のような巨大ファイルが出来ています。
何なのでしょうか?
削除してもオッケー?

-rw------- 1 postgres postgres 16777216 10月 31 12:52
                    0000000000000000
0720nobodyさん02/11/01 16:48ID:???
バージョン 7.2 を使っていますが、ラージオブジェクトに
アクセス権限はありますか? それともそのデータベースに
アクセスできるユーザなら、誰でも任意の操作ができるので
しょうか?

>>719 消しちゃダメみたい。
http://www.postgresql.jp/document/pg721doc/admin/wal-implementation.html
http://www.postgresql.jp/document/pg721doc/admin/wal-configuration.html

別に増えていくわけじゃないよね。シンボリックリンクを使えば、
別の場所へ持って行くことも可能らしいです。
0721nobodyさん02/11/01 17:39ID:???
>>720
url ありがとです。
消しちゃだめなのね。なんとなく納得.... でもでかいな。(w
0722これのことだと思われ02/11/02 13:52ID:???
>>716 http://www2b.biglobe.ne.jp/~caco/third_edition/index.html
技評でつ
0723nobodyさん02/11/02 16:47ID:???
>720-721
pg_xlog以下は、トランザクションログ(Write Ahead Log)です。

更新を行うときにDBのページファイルを直接いじるのはコストがかかるので、
一旦WALにシーケンシャルに書き出し、
ページファイルへの反映は非同期に行います。

WALファイルは不要になれば(=WALの中身がページファイルへ反映されれば)、
自動的に削除されます。

なので勝手に消すのは(・A・)イクナイ!!

シンボリックリンクで他に流す場合には、ファイル単位でなく
pg_xlog ディレクトリそのものをどっかに飛ばしてください。
07247.2.302/11/02 22:52ID:ucdsOWFj
>>717
PostgreSQLでは複数のプロセスが動いています。

postgresはいわゆるサーバデーモンみたいなもの。
postmasterはクライアントごとにpostgresからクライアントごとに
fork()されて、実質の処理を行う。

以上
0725nobodyさん02/11/04 02:58ID:zPFPSFhP
数少ないPostgreSQLの本の中で、PL/pgSQLについて
一番詳しく解説されているのはどれですか?

因みに自分が使っているPostgresのバージョンは7.2.3です。
0726nobodyさん02/11/04 04:58ID:???
>725

マニュアル。
0727nobodyさん02/11/04 12:21ID:???
>>725
最近オライリーから日本語版が出た Postgres 本を
ちょっと立ち読みしたけど、結構 PL/pgSQL の解説
が詳しかったような気がする。

http://www.oreilly.co.jp/

あの表紙は、マンモスなのかな? PHP の本と混同し
そうなヨカン。
0728 02/11/04 22:39ID:B1KD5qMH
pg_log 消しちゃったんですけど、
これって空ファイルをUPしてもダメですよね?
DBあぼーん?
0729nobodyさん02/11/04 23:25ID:EX+F+q+x
cygwinでPostgreSQLやるための手順を説明してあるHPなど
ご存知でしたら教えてください。cygwin用パッケージも
ダウソしたんですけど、通常書いてあるような、手順踏んで
も立ち上がらないんですわ。
0730nobodyさん02/11/05 04:11ID:???
>>728
漏れの場合、DBがタイムスリップしただけで済んだけど?
0731pg_log02/11/05 11:25ID:e5LPgkr8
>>730
タイムスリップとは?
バックアップから復旧したってことですか?
0732nobodyさん02/11/06 03:26ID:???
>728
pg_logはトランザクションの状態を保持しているログファイルですんで、
消しちゃうと、以前のトランザクションの状態を忘れちまいます。

きちんとシャットダウンとかできてれば問題ないんですけど、
障害後とかにpg_log消しちゃうとcommitされてたはずのトランザクションが
DBに反映されてなかったりするかもしれません。

通常は、postmaster止めるときには全トランザクションが終了している
はずなので、あまり問題はないのですが。

運用中に消しちまったなら、それはそれでマズいですね。
特にトランザクション中なら。
0733pg_pconnect02/11/07 14:59ID:???
http://www.itboost.co.jp/php/php_10.php の「持続的接続について」に、
「pg_pconnect では、スクリプトが終了してもデータベースの接続を張りつづけます(pg_close が呼ばれれば切断してします)」とありますが、
PHPマニュアルの「pg_pconnect」には、
「pg_close() は、 pg_pconnect()によりオープンされた持続的接続は 閉じません。」と明記されてます。
記事が間違っているわけですよね??
073473302/11/08 10:47ID:eJxPn4HT
スレ違いすんまそん。
PHPの話題ですた。
0735AAAA02/11/08 14:06ID:P3hOvOBM
>>702
なぜTelnetでアクセス??時代遅れもいいところ

ssh でアクセスしましょう。 REdhat にssh が
入ってなければ、CD-2 にはいってますので、インストールして下さい

Windows からRed Hat へのssh でのアクセスは
ssh でグーグル検索すると、解決できます。

0736nobodyさん02/11/08 20:06ID:???
>>702
http://www15.xdsl.ne.jp/~vfr/debian/magazinedb/postgresql-setup.html
0737 02/11/12 10:57ID:???
postgres SQL 7.1.3 を使用してます。
例えば、field01〜field03のフィールドを持つテーブル"Sample"があったとします。
フィールドのどれかが”猿”という文字を含んでいるレコードを検索するには
select * from Sample where
field01 ~ '猿' or
field02 ~ '猿' or
field03 ~ '猿'
;

とすればよいかと思いますが、
これだとフィールドが増えたとき比例してsql文も長くなってしまいます。
何か上手く省略する方法はないものでしょうか?
whereの対象となるフィールドを"全て"と指定する方法が
あれば便利だと思うのですが・・・
0738nobodyさん02/11/12 19:42ID:???
>>737
不定カラムを指定する方法は知らんけど・・・

where field01 || field02 || file03 ~ '猿'

カラム数に比例して長くなることには変わりないが多少は短くなる。
つーのではダメ?
0739nobodyさん02/11/12 20:34ID:???
>737
設計からやり直した方がいいと思います。

パフォーマンスが劣化するのに比べれば、
多少SQL文が複雑になるのなんて問題ではないです。

そういう設計をしていると、
データが蓄積されて止められなくなったときに、
パフォーマンスが劣化して
完全に使いモノにならなくなる可能性が高いです。
0740nobodyさん02/11/13 10:10ID:Ys/0saOj
初心者ですみません、

SQLで動的にテーブルを作成しているのですが、
テーブル名の検索は、出来ますでしょうか。

単純な質問ですがよろしくお願いします。
0741nobodyさん02/11/13 12:38ID:???
できるよ
0742nobodyさん02/11/13 20:29ID:???
select * from pg_tables;
074373702/11/14 11:38ID:???
レス遅スマソ

>738
その書き方いいですね。
SQLかなりシンプルになりますね。
いただきます。

>739
某企業の製品のWebカタログ用DBなんですけど
完全フリーワードで殆どのカラムを対象にした
テキスト検索をしたいということなので、いっそまとめて
全カラム指定ができればと思ったのですが、
やっぱり738さんのように、カラムは指定した方がいいですね。

お二人とも助かりました。ありがとう。
っていうかもっとマニュアル読まないといかんなと反省。
074473702/11/14 11:39ID:???
無意味に省略させてしまった。鬱...
0745age@2chan02/11/14 20:24ID:???
>>741
>>742
遅レスでスマソ、ありがとうございます。
0746nobodyさん02/11/18 16:05ID:hHx05UgU
ヤフオクの画像検索ってどうやって実現してんのかな?
キーワードを付けてるわけじゃなさそう。。。。
0747nobodyさん02/11/19 23:11ID:???
リコー
0748nobodyさん02/11/20 17:09ID:9OjQWVpD
747は746へのヒントなの?
0749nobodyさん02/11/21 10:19ID:T0eOANSL
インストールする時での質問です。
ユーザー「postgres」でtar玉を解凍し、./configureしようとすると

> ./configure: /dev/null: 許可がありません

という表示がでてしまいconfigureが出来ない状態です。
どなたか解決策を教えて下さい。
0750nobodyさん02/11/21 20:35ID:???
とりあえずエラーメッセージを読んで理解してください。
075174902/11/22 08:28ID:VQdZpxGf
>>750
初心者なので…そのメッセージが理解できないんです。
0752nobodyさん02/11/22 17:44ID:hcJNBN1x
君はPostgreSQLを入れる許可がないらしいぞ >749
0753nobodyさん02/11/22 17:53ID:???
>>752
うまい!

山田君、752さんに(略
0754nobodyさん02/11/24 14:16ID:jX5yz0lF
Win版(postgresql-7.2.1-win32)をXPに入れてみたのですが、
psqlで接続できなくなってしまいました。
pg_hba.conf は、ローカルシステム上のすべてのユーザーに
許可するようにしているはずなのですが...
解決策をご存知でしたら教えてください。お願いします。

psql: could not connect to server:
対象のコンピュータによって拒否されたため、続できませんでした。
Is the server running on host localhost and accepting
TCP/IP connections on port 5432?



0755nobodyさん02/11/24 14:21ID:???
win房や。マニュアルぐらい読め。
どうせ、pg_hba.confで設定してないか-iオプションついてないんだろ。
0756nobodyさん02/11/26 05:08ID:9GlaXfXk
postgresって文字列を置換するSQLはないのでしょうか?
(Oracleならたしかったんだけどな。。。)
0757gn355my002/11/26 10:22ID:???
>>756
>>755
075874602/11/28 11:50ID:oGIU5VGK
>747 ありがたう。リコーのページ逝ったらわかったよ。

うーん まだ個人が作れるものじゃないのかなぁ・・・・・
キーワード付けるしかないのか・・・・・
0759nobodyさん02/11/28 16:49ID:???
ttp://www.sra.co.jp/public/sra/topics/topics2002/021127.shtml
0760nobodyさん02/11/29 14:44ID:???
7.3age
0761nobodyさん02/12/03 13:48ID:mw59SOfb
トリガプロシージャを作っています。
New.カラム名 とか Old.カラム名 でデータの取得をする時、
カラム名をテキスト型の変数から指定したいと思っています。

例えば、下記のような場合、
column_name varchar(50) := ''data_name'';
・・・↓
new.column_name;
のように指定したいのですが、column_nameを変数ではなく
フィールド名として認識します。
これを、フィールド名として認識させるには
どうしたらよいでしょうか?
PostgreSQL 7.2.3を使っています。
よろしくお願いします。
076276102/12/03 13:50ID:???
間違えました。訂正↓

column_nameを変数ではなく
フィールド名として認識します。
変数の値をフィールド名として認識させるには
どうしたらよいでしょうか?
0763?Sメ02/12/04 12:45ID:4lhjBjYk
教員のプロフィール(英文字のfirst_name,family_nameを含む これが検索キー)
のデータベースと、教員の受け持つ授業科目のデータベースがあります。

この2つのデータベースから教員のプロフィールに授業科目を加えたものを
つくりたいと思っていますが、うまくできません。

select .... from profile, kamoku
where profile.family_name='*****'
and profile.first_name ='*****'
and ????????????????????

???????????のところで、
うまくプロフィールの方で限定した教員名で科目の方の教員名を
限定したいのですがどうしたらいいでしょうか?
076476102/12/04 13:07ID:???
>763
テーブルの構造がわからないと、どうしたらいいかなんて
説明できないです。
0765ベテラン教師02/12/04 16:27ID:???
>>764
ぷっ わからんなら答えるなよ

入れ子構造にすればよい こんなの簡単じゃないか はは
076676102/12/04 17:22ID:???
>765
いやぁ〜副問い合わせがわかるレベルならこんな質問しないでしょう。
副問い合わせ使わなくてもできるかもしれんし。。。

で、ベテラン教師さん、761の質問教えてくださいよー
0767nobodyさん02/12/04 21:07ID:4d678Rrg
設計について質問なんですけど、

2ch型の掲示板をDBで実装(?)するときに、1スレッド1テーブルで、
スレッド一覧、みたいなテーブルを一つ持つ。

っていうのが、全部を一つのテーブルに入れるのとの、欠点(遅くなる)
とかって何なのでしょうか?

できれば、スレッドごとにテーブル、にしたいんですけど。
0768nobodyさん02/12/04 21:41ID:kMXe/HJp
スレッドごとにテーブル用意すんの?
スレッド増えたらテーブルも生成すんの?
076976702/12/04 22:43ID:4d678Rrg
うん。
まずいかな。。

0770nobodyさん02/12/04 23:33ID:kMXe/HJp
まずいっていうか、テーブル構造もクソもないな。
スレッドを格納するテーブルはバチっと決めておいて、
レコードとしてスレッド格納するように設計すれば?
077176702/12/05 00:07ID:6rvWMyhf
なるほど。。

最終的には、ツリーっぽいデータ形式にしたい。(スレッドの中にスレッド)
だから、レコードに詰め込んでいくと苦しくなりそう。

で、ばしばしテーブルを増やすことは、無駄なこと、なのかな??
ある程度大きくなることが期待されないと、読むときの効率が悪くなる。?
具体的には、テーブルの生成によるオーバーヘッドみたいな物とかは、存在するのか。
0772nobodyさん02/12/05 00:26ID:vXkLaZQH
動的にSQL投げてテーブル増やすのはやめたほうがいいよ。
そのために、DB設計とか、スキーマ設計ってものがあるんだから。
テーブル内で、あれこれやるのはいいだろうけどさ。
商用プロジェクトだったら、必ずDB設計書を書くだろ。
動的に生成されるテーブルがあるなんて、あんまり聞かないぞ。
0773nobodyさん02/12/05 00:40ID:6rvWMyhf
ぅ。もしかして、ツリー形式のデータをRDBMSにぶち込むのは、根本的に間違ってるとか。かな。
他にちょうどいいのを探すか・・
0774nobodyさん02/12/05 01:02ID:???
>>772

??? 動的にテーブル生成するというは、当たり前のことだよ。
0775nobodyさん02/12/05 01:06ID:Ejjyn6K+
>>774
正規化していないのがばれまくり・・・
0776nobodyさん02/12/05 01:11ID:vXkLaZQH
>>774
だから、メンテできなくなるDBが多いんだよ
0777nobodyさん02/12/05 01:15ID:???
データベース設計とは、例えば「先生リスト」「生徒リスト」というテーブルがあったとして、両方に住所があるから「住所テーブルを作ろう」とか、そういうことをやる。
記事の場合は題名と日付と投稿者と本文しかありえないんだから、テーブルいくつも作っちゃだめ。
0778nobodyさん02/12/05 01:29ID:???
http://www.torikyo.ed.jp/torie-h/
これは、田舎のひなびた小さな学校のHPを100万ヒットの
人気HPにしてあげようという運動です。現在のターゲット校は上記です。
多くの皆さんクリックしてあげて下さい。
HPに飛んだら、2,3回更新していただくと、もっとありがたいです。
どんどんコピペして他の板にまいてください。
http://www.KissLoveTOCO.com/
0779nobodyさん02/12/05 01:56ID:6rvWMyhf
記事にIDをふれば、IDと、内容が対応するようになるから、それでいいんじゃないのか?



0780名無しさん@Emacs02/12/05 04:53ID:???
スレタイテーブルとカキコテーブル作って、
スレタイにスレID振ってカキコにもスレID振ってjoinつーのが
普通の設計だべ?多分。
0781gn355my002/12/05 10:53ID:???
>>780
それだとスレごとに連番を振れなくなる罠
0782nobodyさん02/12/05 11:27ID:???
uniqで昇順になってれば連番じゃなくていいじゃん。ってのはダメ?
別んとこにsequenceだけ持っておく、というのもアリかも。
0783nobodyさん02/12/05 16:31ID:zuT0nBpD
>>780
スレタイテーブルに最終番号をつけといて

BEGIN;
SELECT 最終番号 FROM スレタイテーブル;
INSERT INTO カキコテーブル(スレid, 最終番号 + 1, メッセージ, ...);
UPDATE スレタイテーブル SET 最終番号=最終番号 + 1;
COMMIT or ROLLBACK;

うちはこうしてる。

>>773
SQLだけでもできるけどメチャクチャ遅くなる。
メモリに読みこんでバイナリツリーかな。
レコードに親番号が入ってれば何とかなるよ。
0784nobodyさん02/12/05 18:09ID:???
plpgsqlで作成したトリガファンクション内で
 CREATE GROUP
は使えますか?

CREATE GROUPの行でエラーになるんですが、
原因の特定がうまくできないもので。。。
使えるか使えないかだけでも、わかる方いらっしゃいませんか?
0785nobodyさん02/12/06 18:47ID:n3ITkPRW
case 文で、NULL の時、'1'を入れるってやりたいんですが、うまくいかないです。

select case NUMBER when NUMBER is null then '1' else NUMBER end from AAA ;
0786ポトスグレと弱気に発音02/12/06 19:23ID:e3P89aGI
最近postgreSQLをさわり始めたんだけど、まぁDB自体もこれが最初。
まぁ、なんとかユルユルと走らせる程度の事はできるんだけど、
何やらよくわからんのはバキュームやらバックアップやら。
バキュームっつーのはつまり、ノートン先生のスピードディスクみたいなもん?
バックアップは通常全部のSQLをどっかに溜めるとかするのか?
バキュームやらバックアップやらはPostgreを走らせながらできるの?頻度は?
なんて事を小学生でもわかるぐらいの平たい文章で説明してるサイト
とかないものか・・・と
0787nobodyさん02/12/06 20:34ID:RV7qzP6C
>>785
型変換だろ?
つまりインテガーとかブーリアンだからそうなるのよ。
わかる?
0788nobodyさん02/12/06 20:35ID:WQv5Y1p0
>>786
シーラカンス本を読むといいよ。
0789ポトスグレと弱気に発音02/12/06 23:32ID:e3P89aGI
>>788
ありがとうございます。ちょいと本屋で購入してみます。
0790nobodyさん02/12/08 04:30ID:cZH6KLf5
redhat環境でpostgres7.2.3から7.3にアップデートしたんですが、
windowsからtcp/ip経由で接続時、パスワードを入力しても不正と言われログインすることが
出来なくなってしまいました。
pg_hba.confなどは特に変更していないのですが、何か設定しなければいけないものがあるんでしょうか?
(認証方法をtrustにすると、tcp/ip経由でもログインすることは可能になります)

0791☆☆☆☆☆02/12/08 05:20ID:mpITnhtZ
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0792nobodyさん02/12/08 12:55ID:???
Changesにも書いてあるみたいだけどpg_hda.confの書式が変わってるみたいだよ
http://developer.postgresql.org/docs/postgres/client-authentication.html
0793nobodyさん02/12/08 16:53ID:CK0ZspDs
MacOS X にPostgreSQLをインスコしてます。
MacOS X のエクセルで作ったcsvファイルをインポートしたいんですが、
うまくいきません。たぶん、sjisからuecに変換すりゃいいとおもうのですが、
TextEditでEUCにして保存してもエラーがかえってきてしまいます。

で、MacOS Xで動くPostgreSQL用のGUIクライアント(ファイルインポート付き)という都合の良いものはないでしょうか。
当方、筋金入りのマカーなのでWindowsなんてものは自宅にありません。すいません。
0794nobodyさん02/12/08 17:49ID:???
なにが問題なのか理解すれば簡単だと思うよ。
エラーが出る前後のデータをよく見てみれば?
0795nobodyさん02/12/08 18:59ID:J0X/eNGY
>>794
エラーメッセージを書こう。
0796nobodyさん02/12/09 16:35ID:8KLf+wGF
犬 | パトラッシュ | 大型
犬 | ゴン助 | 中型
犬 | カール | 小型
猫 | チャトラン | 長毛
猫 | クロ | 短毛

というテーブルと

犬 | 01
猫 | 02

というテーブルがあった場合、VIEWなりで検索結果を

犬 | 01 | {パトラッシュ,ゴン助,カール} | {大型,中型,小型}
猫 | 02 | {チャトラン,クロ} | { 長毛,短毛 }

なり

犬 | 01 | {{パトラッシュ,大型},{ゴン助,中型 },{カール,小型}}
猫 | 02 | {{チャトラン,長毛},{クロ,短毛 }}

なんて配列に格納し直す方法って、ありますか?
サブクエリーでは、複数の検索結果を入れ込むことが出来ず、やはり
FUNCTIONを作ってLOOPなりWHILEなりで回すものでしょうか?
079779602/12/09 18:31ID:???
>>796
自己レスですが、やっぱりFUNCTION作ってループ処理させ、
そのFUCTIONをVIEWに組み込んで、あっさり解決しました…
0798nobodyさん02/12/09 20:33ID:KNhGAZpk
DBを作るときに入力したSQLを書き出すコマンドとかってありますか?
*.sqlを間違えて削除してしまいました・・・(泣)
0799nobodyさん02/12/09 22:13ID:???
「DBを作るとき」というのがテーブル定義のことならば、pg_dumpで出せるよ。
データを出さずにテーブル定義だけを出力するオプションもあったはず。
080079802/12/10 09:14ID:???
>>799
出来ました!ありがとうございます。
0801nobodyさん02/12/10 12:53ID:???
テーブル"A"のフィールド"ID"にあってテーブル"B"のフィールド"ID"に無い
ものをSELECTするってどういうSQL書けばいいんだっけ?
0802gn355my002/12/10 14:04ID:???
>>801
あ〜 そーゆーの昔流行ったよね〜

オトコにはあるけどオンナにはないもの
とか
ポパイは2でオリーブは1
とかってやつだろ?

この問題は難しいなぁ。。。もうちょっとヒントくれない?
0803nobodyさん02/12/10 14:29ID:8bCVhaMr
>>801
FROM区でAとBをLEFT JOINして、WHERE区でB.idがNULLのヤツだけ選べ。
漏れの借りてる鯖のPostgresは7.0.3だから、JOINが使えなくて試せなんだ、すまん。
080480102/12/10 17:41ID:???
>>803
ありがとうございます。
SELECT * FROM table_a NATURAL LEFT JOIN table_b WHERE table_b.id = NULL
で出来ました。
0805nobodyさん02/12/12 23:43ID:???
>>801
普通はexistsを使うと思うが…
0806nobodyさん02/12/13 11:00ID:kiLZZUkt
7.2.1から7.3にバージョン上げたら、NOTICEとかERRORのメッセージが2回ずつ出てくるようになっちゃったんだけど…
他にもこの現象起きてる人っている?
0807bloom02/12/13 11:02ID:wUIKbYLk

http://www.agemasukudasai.com/bloom/
0808nobodyさん02/12/16 13:10ID:???
テーブルにカラムを追加したいんですが、
SERIAL型は追加できないのでしょうか?

ALTER TABLE T_EmpEmerg ADD seq_id SERIAL;
0809nobodyさん02/12/16 15:21ID:???
正確なやり方を知らないから7.3で試してみた。
テーブル名はtestね。

serial型を追加しようとすると、
ERROR: Adding columns with defaults is not implemented.
Add the column, then use ALTER TABLE SET DEFAULT.
と言われたから指示通りに

create sequence test_id_seq;
alter table test add column id integer;
alter table test alter column id set not null;
alter table test alter column set default nextval('public.test_id_seq'::text);

とやったらできた。
ちょっとは自分で試してみたの >808
0810nobodyさん02/12/16 16:20ID:qVo6yZm2
すいません、
問い合わせ結果でnullのときは0を返し、そうでないときは結果そのものを返す、
としたい場合は、どうしたらよいのでしょうか。
0811nobodyさん02/12/16 16:34ID:???
>809
ALTER TABLE test ADD seq_id SERIAL;
としたらエラーになったので
ALTER TABLE test ADD seq_id SERIAL SET DEFAULT 0;
とかやってました・・・。
先にCREATEするんですね。ありがとうございました!

>810
CASEをつかえば出来ると思います。↓
http://www.postgresql.jp/document/pg721doc/user/functions-conditional.html
0812nobodyさん02/12/16 17:25ID:???
>811
810です。
CASEでできました!
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています