■   PostgreSQLのことならここで聞け   ■

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。

取りあえず立ててみますた
2 ◆nbAC9ylWUI :03/06/30 17:04 ID:???
2get!
3:03/06/30 17:07 ID:8NOYLAwY
関連スレありそうだけど初心者専用ということで一つ・・・
4名無しさん@お腹いっぱい。:03/06/30 17:08 ID:???
>>1
えっ?ここドラゴンボール板じゃないの?
5:03/06/30 17:09 ID:8NOYLAwY
>>4
それらに対抗する意味でも立ててみますた。
6名無しさん@お腹いっぱい。:03/06/30 17:12 ID:???
取りあえずFreeBSDでのインスト方法など詳しく解説したサイトキボンム
7名無しさん@お腹いっぱい。:03/07/01 13:26 ID:???
>>6
俺もキボンヌ
Linuxばっかりなんだよ。起動用に作成するユーザについてもFreeBSDについては説明無いし。
8名無しさん@お腹いっぱい。:03/07/01 22:37 ID:k8THQo6W
>>6-7
チューニングの話なら兎も角、インストの話かよ。。
まじでそんな説明要る?
9名無しさん@お腹いっぱい。:03/07/01 22:41 ID:???
>>8
自分が通り過ぎてきた道を忘れているやつハケーン
10名無しさん@お腹いっぱい。:03/07/01 22:43 ID:???
> 取りあえずFreeBSDでのインスト方法など詳しく解説したサイトキボンム
portsで十分。
118:03/07/01 22:46 ID:???
>>9
通ったこともありませんがなにか?
12名無しさん@お腹いっぱい。:03/07/01 22:47 ID:k8THQo6W
>>9
ん?いや、FreeBSD用の話だろ?
わざわざ、そんなの要る?まじで聞くけど。
http://osb.sra.co.jp/PostgreSQL/7.3/install.html
別にLinux用として書かれてねーけど?
13名無しさん@お腹いっぱい。:03/07/01 22:48 ID:k8THQo6W
>>11
先に書くな(ワラ
14名無しさん@お腹いっぱい。:03/07/01 23:28 ID:PO9x71v4
ああぁぁ〜、すべてのスレがネタ化して行く、、、
15名無しさん@お腹いっぱい。:03/07/02 04:07 ID:???
FreeBSD だったら、とりあえず gmake 入れとけって感じ。
ユーザは postgres:postgres でいーのでわ?
16名無しさん@お腹いっぱい。:03/07/02 05:08 ID:DkSkUTas
gmakeとmakeって何が違うの?
17名無しさん@お腹いっぱい。:03/07/02 05:32 ID:5fbApEUT
>>16
makeはOS独自のmake
gmakeはGNUのmake

GNUのmakeをmakeにしちゃうと片方のmakeをいちいちフルパスで書かないといけないか
ら。

FreeBSDだったら、たいがいのアプリのportsで勝手にインスコされる。

18名無しさん@お腹いっぱい。:03/07/02 10:17 ID:???
PostgreSQLといったソフトは、rpmとかportsを使用するのは、
お勧めできた話じゃない。
ま、大した使い方しないなら、それでもいいんだろけど(w
19名無しさん@お腹いっぱい。:03/07/02 15:48 ID:???
>18
なんで?

spec を編集して rpm にし直すんじゃダメなのか?
20名無しさん@お腹いっぱい。:03/07/02 16:02 ID:???
>>19
ん、rebuildすんならいいよ。
↑あくまで、「勧め」の話しね。勝手にインスコ・・・はお勧めできんと。
でも、PostgreSQLパッケージ作り直しってあんま意味ないとは思うのだが。

#とりあえず、ここはドラゴンボールに汚染されずにすみそ。
 またりいこね♪
21名無しさん@お腹いっぱい。:03/07/02 16:15 ID:???
ポストグレスエスキューエル
ポスグレエスキューエル

みんなどっちで呼んでる?
俺は後者
22名無しさん@お腹いっぱい。:03/07/02 16:58 ID:???
>>21
ポストグレス
厳密に表現するときは
ポストグレエスキューエル
23名無しさん@お腹いっぱい。:03/07/02 17:53 ID:???
ランダムにデータを取り出したい時はoidrandを使うしか無いの?
なんかoidrandって遅くない?
24名無しさん@お腹いっぱい。:03/07/02 18:51 ID:???
PGで実装するほーがよろしいかと。
25名無しさん@お腹いっぱい。:03/07/02 22:21 ID:???
offsetとlimit組み合わせて、offsetをrandamizeすれば
oidrandとか使わなくても大丈夫なんじゃない?
26名無しさん@お腹いっぱい。:03/07/04 17:44 ID:???
bbbbbbbbbbbbbbbb







bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
27名無しさん@お腹いっぱい。:03/07/13 15:21 ID:0aiQXehE
PostgreSQLのインストールに関する質問はこのスレがお勧め?
28名無しさん@お腹いっぱい。:03/07/13 15:46 ID:???
>>27
インストールネタかよ・・・・・
で、何?
29名無しさん@お腹いっぱい。:03/07/13 15:50 ID:???
こっちよどっちがいいのかと思ってさ。
IDみればわかるけどあっちにもかいてもうた。
PostgreSQL 2テーブル目
http://pc2.2ch.net/test/read.cgi/db/1056944337/
3027:03/07/13 15:51 ID:???
なぬ?
IDが消えている!
これどういうこと?
消えたり突然現れたり。
31名無しさん@お腹いっぱい。:03/07/13 15:52 ID:???
任意 ID 板だから sage ると ID が消えるよ。
32名無しさん@お腹いっぱい。:03/07/13 16:58 ID:9++YWdbz
約禁止になりそうと知ったボクの友
人所属嬢が店への不信で退店を表明し
33あぼーん:あぼーん
あぼーん
34あぼーん:あぼーん
あぼーん
35名無しさん@お腹いっぱい。:03/07/14 14:30 ID:0xA1rEeF
postgresにCSV形式のファイルからテーブルつくるには?
ちなみに、vainLinux postgresね。
36あぼーん:あぼーん
あぼーん
37あぼーん:あぼーん
あぼーん
38あぼーん:あぼーん
あぼーん
39あぼーん:あぼーん
あぼーん
40あぼーん:あぼーん
あぼーん
41あぼーん:あぼーん
あぼーん
42あぼーん:あぼーん
あぼーん
43あぼーん:あぼーん
あぼーん
44あぼーん:あぼーん
あぼーん
45あぼーん:あぼーん
あぼーん
46山崎 渉:03/07/15 11:25 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
47名無しさん@お腹いっぱい。:03/07/15 18:55 ID:???
>>19
俺はrpmやportsは使わない。
PostgreSQLをインストールするときはたいがいpl/pgsqlもいれるし
contrib/pgstattupleやcontrib/pgbenchもいれるから。
ま、クライアント側に関しては、必要があればソース追うこともあるし。
# サーバー側のソースはさっぱりわからんが。
48名無しさん@お腹いっぱい。:03/07/15 20:40 ID:???
↓7.3で消えたdatetime型の復活を望んでるやつ
49名無しさん@お腹いっぱい。:03/07/15 23:00 ID:v9W7awk7
PostgreSQLをWinで検証できんもんかね。
httpd+AcitivePerlみたく
50名無しさん@お腹いっぱい。:03/07/16 00:07 ID:BPReIKi5
>48
え、なくなったの!?
シーラカンス本第2版読みながら入れたヤツに、datetime型を使った
フィールドを作って勉強してたのに・・・
5150:03/07/16 00:13 ID:BPReIKi5
俺が買ったの、第3版だったかも。スマソ
52名無しさん@お腹いっぱい。:03/07/16 03:17 ID:2y9Jrw5S
perl+DBI+postgresqlでコーディングしています。

データベースからソートして取り出したデータを順番を保ったままperlで
使用したいのですが、$hash_ref = $sth->fetchrow_hashref
をすると順番が変わってしまいます。
何か対処法はご存じないでしょうか?

$sth = &WrapSql("SELECT * FROM $TableName order by yomi",$mydb);
while ($hash_ref = $sth->fetchrow_hashref){
//順番が保持されていない
53名無しさん@お腹いっぱい。:03/07/16 08:58 ID:f6TQZj7o
hashrefって、検索した結果に高速アクセスするためのメソッドだから
順番通りに表示するっていう目的には向かない。

別のメソッドfetchrow_arrayrefとかfetchrow_arrayなどを使うべし。
54名無しさん@お腹いっぱい。:03/07/16 09:03 ID:f6TQZj7o
7.0から、
datetime型をやめてtimestamp型を使うようになった。
7.3からじゃあないぞ。

なお、互換性のため今でもdatetime型はサポートされている。
でも使うなってさ。

55名無しさん@お腹いっぱい。:03/07/16 18:45 ID:???
>>54
7.3.3入れたけど、本当になくなってたよ。
datetime()関数、now()関数もなくなってた。

timestamp型を使って、
timestamptz()関数、current_timestamp()関数を使えば用は足りるんだけど、
名前長いっちゅうねん(笑)

あぁ、自分で関数定義してかぶせとけばいままで作ったSQLも通るな・・・。
56名無しさん@お腹いっぱい。:03/07/16 18:47 ID:???
あ、「なくなってた」というのは、下位互換が打ち切られて「きれいサッパリ跡形もなくなってた」って意味です。
57名無しさん@お腹いっぱい。:03/07/16 18:57 ID:???
>>49
適当にボロいPCみつくろってLinux入れてPostgreSQL入れて、
xinetdでTelnetの設定して、Postmasterを -iSで起動しとけば
別にローカルじゃなくたっていいと思うんだけど?

SQLはTelnetから投げまくりながら組み立てりゃいいし。
58名無しさん@お腹いっぱい。:03/07/16 19:13 ID:drf5UIry
pg_accessのこともこのスレでいい?
59名無しさん@お腹いっぱい。:03/07/16 22:03 ID:???
>>53
fetchrow_hashref()とfetchrow_arrayref()の違いは、カラム名をキーに持つ
ハッシュでレコードを取得するか、カラムの並び順の配列で取得するかの
違いだけで、レコードの取得順は変わらないと思ったが?
60名無しさん@お腹いっぱい。:03/07/18 22:31 ID:???
>>53
つーか、そもそもハッシュというものに順序という概念がない。
PostgreSQLとは関係ないPerlの問題。
fetchrow_arrayref() 使え。
61あぼーん:あぼーん
あぼーん
62ぼるじょあ ◆ySd1dMH5Gk :03/08/02 05:06 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
63名無しさん@お腹いっぱい。:03/08/04 17:54 ID:1cnpzczB
postgres固有の問題じゃないのかも知れないけど質問させてください。

DBI::Pgでtable_info()を使っているのですが
use DBI;
$dbname="sample";
$dbh=DBI->connect("dbi:Pg:dbname=$dbname", "", "");
$tabsth = $dbh -> table_info();
while ( ( $qual,$owner,$name,$type,$remarks)= $tabsth -> fetchrow_array()){
print "$name\n";
}
$dbh->disconnect;

を実行すると
本来の目的のために作ったテーブル以外に

pg_aggregate
pg_am
pg_amop
pg_amproc
pg_attrdef
pg_attribute
:

のようなものが出力されてしまいます。
これを出力させないようにするにはどうしたら良いでしょうか?
64名無しさん@お腹いっぱい。:03/08/05 02:18 ID:7cvkSzX2
初心者質問ですが、not nullで作成したフィールドを
あとでnull ok に変更するにはどうしたらいいですか?
65名無しさん@お腹いっぱい。:03/08/05 11:50 ID:???
>>64
ALTER TABLE table_name ALTER column_name DROP NOT NULL;
66名無しさん@お腹いっぱい。:03/08/05 11:51 ID:???
つーか、\h ALTER
67名無しさん@お腹いっぱい。:03/08/05 12:45 ID:???
>>63
何がしたいかによるけど、pg_はシステムテーブル等なので
$name の、 pg_ で始まるものを除くか、$type で TABLE以外を
省くかすればいいんでないの?
68名無しさん@お腹いっぱい。:03/08/05 16:02 ID:???
7.2以前なら、pg_ で始まるテーブルを除く。
7.3以降なら、relnamespaceがpg_catalog(OID 11)になっているテーブルを除く。
69名無しさん@お腹いっぱい。:03/08/13 14:59 ID:???
PostgreSQL って EJB QL の関数をサポートしてないのでしょうか?
例えば、

SELECT
OBJECT(a)
FROM
myTable AS a
WHERE
SUBSTRING(a,userID 1, 4) = ?1

みたいに EJB QL のSUBSTRING関数なんかを使っていると

java.sql.SQLException: ERROR: parser: parse error at or near "{"
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:131)

という例外が発生します。
関数を使わなければ、問題なく抽出が成功するんですけど・・・
7069:03/08/13 15:04 ID:???
あ、すいません。「,」が抜けてました。
 SUBSTRING(a,userID 1, 4) = ?1

 SUBSTRING(a,userID, 1, 4) = ?1
に訂正します。

ちなみに CONCAT関数もダメでした。
だれかご存知の方、いらっしゃるでしょうか?
71山崎 渉:03/08/15 22:08 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
72山崎 渉:03/08/15 22:40 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
73名無しさん@お腹いっぱい。:03/09/09 19:02 ID:QWXRJYI8
すいません。
date を型にしたフィールドに、日付 (ex. 2003-03-31) のほかに空白が入っているレコードもあるのですが、
空白のレコードのみをマッチさせてひきだす SQL をかけません。
where targetdate = null だと何も出てこない。
しかも targetdate != null でも、日付に入っているレコードが出てこない。

どう書くと正しいのでしょう?
格納するときは textfile から \copy で入れたのでよく分からないのです。
74名無しさん@お腹いっぱい。:03/09/09 19:39 ID:???
>>73
targetdate IS NULL 、targetdate IS NOT NULL は?
あと空文字 '' の可能性はある?
75名無しさん@お腹いっぱい。:03/09/10 11:49 ID:/hlnUy9M
あるデータベースに属する全てのテーブルを対象に,
与えた値が含まれるかどうか調べ,含まれていたなら
該当するテーブルとカラムを吐き出すような方法ってありますか?

システムカタログ調べて,適当なSQLを生成してクエリするような
スクリプト書かないとだめでしょうか…???
76名無しさん@お腹いっぱい。:03/09/10 16:32 ID:???
それしかないような、、、
PostgreSQLについてくるマニュアルやツール類のソースを見れば
なんとかなるでしょう
77名無しさん@お腹いっぱい。:03/09/10 16:42 ID:L8lcGuSV
質問です。

正規表現で Perl で書くと、次の様なことがしたいのですが、

 if($keyword ~= /^foo ([^\s]+) bar (\d+)/) {$out = "$1:$2";}

SQL の CASE などで実現する方法はないのでしょうか?

 CASE WHEN $keyword ~ '^foo ([^ ]+) bar ([0-9]+)' THEN "$1:$2"

78あぼーん:あぼーん
あぼーん
7977:03/09/10 16:53 ID:L8lcGuSV
補足です。

ちなみに、SQL の 文字列関数で、文字列の一部を抜き出せばよいのですが、
ここでは簡単に書きましたが、実際の正規表現部分は、複雑で、
とても文字列関数でカバーできそうにありません。
80名無しさん@お腹いっぱい。:03/09/11 10:28 ID:???
>>74
そ、そうか is を使うのでしたね
面目ない・・・
8175:03/09/11 11:19 ID:???
76様,諦めがつきますたありがとうございます.
こんなもの作ってみますた.
つっこみどころ沢山なもんなので

$ pg_grep -d hoge -t int 6852 2>/dev/null

とかって使いますけど,目的は果たせたので…

begin 644 pg_grep.bz2
M0EIH.3%!629364E&U84``0U_@%ST$`!^YL`??^?=CK_O_^]0`SA>QLFQ33AH
M)&BGZ),::CQ3U!HT&GIJ,@#0`#3TCU!QDR:,0Q-,!`P)I@C!,3330`8081"0
M$U'ZIZ:GII`:#U#U/4,AD-`T:`/4'&3)HQ#$TP$#`FF",$Q---`!A!)(F(:I
MZF:4_0IY$\IL*`T'J`!IZ@?J$::>IA(%R()1%P`21`2!-X'1I_B]NAF!NM"A
M/<!2DRTV&&B^AYQ<[@J+WJ%BJI_%IX8BO#C&'QOW9:KOW8L,T0"*0%X))+O(
M0"22"02"`2)%5@\\H9:[-CM4B:R7$A((:S]Q^7XD<XW")KZ/K2&H",CSQ"\&
M!?)*M<?\)H;C/--P;HNDZP-*@2)9!"ZSN#[74?Z\\:.JF'%IG.%KQR>F
MFRJ;>TR$&CTN@KJKQ!XT.E+B;6]5E6S<=:5U\6RAPA17MOR013F=MH;$LYVT
MDCZVRBC-U8$I"SS5VT63+4Z=F./W+/(NS&K@G10*"X=$X&1VG);'W=_!=U)"
M%P2LTQ\.]J!1;\P6FM\Q'VYU<>#7&KIS%I>OKBA:$R'68?D>?RM5]BTJ-#3S
MYG1]\\6]A(FQD9QO2'!LV_$1N"_D`B.-P7AUAY.<P80ZC\4-YZIW@?L&,`4A
MTN"(7[(4!"<!SHD;]`:%#'KE%0-(`:>?&=$'(3!A`!\`&R4(PD19143BM^^
M[F>!7B?K3&)2MRUF,P:,!0R32!\R,&&5KU@E`D*!=<N#7F'(,6.WSO0W!.1J
M=)F5OYRHK0AQ3A[*!:<$P.5P,BQDQ&0JCX+7/C4M`2G<YED44P=A$(BAVV!_
M@VYYILSA<#+L'*_(H5Y.8?<&V@8ERF8,,F9FK7,<G+C)D/Z*DPP,IGPC!8-K
ML2>6FG6FX@1&,=*.):-Z\+(T%G&`18;<P8&1`X#NDGHJI%64&(HT`-7QK&%R
M@C;V(S;YIYK64TXA%8X49.SEB9:RM89'!LZ>F5:7?5(7DW#3?Q0,6<">9`(A
M*"34B"D`S:FQ'4E--,QI+OW54`1EGND7"E9<@M10R:0R?3B!/P1YVTT75DBI
LSRX9D:=1:J-F-:I6B/*"L2L5.H[7#MVP(A0%#,QV1?UG\7<D4X4)!)1M6%``
`
end

82名無しさん@お腹いっぱい。:03/09/12 17:03 ID:???
教えてください。

集約関数を作って、入力された変数を、
配列として出力したいと思っています。

CREATE AGGREGATE を使えばいいのかと思うんですが、
さっぱりわからなくて困っています。

CREATE FUNCTION dimf(int8[],int8) RETURNS int8[]
AS 'SELECT $1,$2 ' LANGUAGE 'SQL';
CREATE AGGREGATE dimout(basetype=int8,sfunc=dimf,stye=int8[],initcond='{}');

SELECT dimout(field) FROM table;
83名無しさん@お腹いっぱい。:03/09/14 03:06 ID:???
PostgreSQL のフロントエンドの開発ツールって、Access、VB?
お勧めある?
(VectorにAccess+Posgreのアプリがあるけど、こういうのって
例外だろうか)
84名無しさん@お腹いっぱい。:03/09/14 16:57 ID:???
Winでインストールするにあたって
ttp://www.aspect-sys.co.jp/etc/win/xp_db/postgresql/install.html
ここみてインストールしてたんですけど makeでエラーでてるんですけど
どしたらいいの?
85こんなかんじです:03/09/14 17:02 ID:???
dlltool --dllname postgres.exe --output-exp postgres.exp --def postgres.def
gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -L/usr/local/lib -o p
ostgres.exe -Wl,--base-file,postgres.base postgres.exp access/SUBSYS.o bootstrap
/SUBSYS.o catalog/SUBSYS.o parser/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o l
ib/SUBSYS.o libpq/SUBSYS.o main/SUBSYS.o nodes/SUBSYS.o optimizer/SUBSYS.o port/
SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o rewrite/SUBSYS.o storage/SUBSYS.o tc
op/SUBSYS.o utils/SUBSYS.o -lz -lreadline -lcygipc
libpq/SUBSYS.o(.text+0x204b):crypt.c: undefined reference to `_crypt'
Info: resolving _optarg by linking to __imp__optarg (auto-import)
Info: resolving _optind by linking to __imp__optind (auto-import)
Info: resolving _opterr by linking to __imp__opterr (auto-import)
Info: resolving _optreset by linking to __imp__optreset (auto-import)
collect2: ld returned 1 exit status
make[2]: *** [postgres] Error 1
make[2]: Leaving directory `/usr/src/postgresql-7.3.4-2/src/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/postgresql-7.3.4-2/src'
make: *** [all] Error 2
86名無しさん@お腹いっぱい。:03/10/12 12:48 ID:ne65DEmK
postgresで別DBのテーブルを参照することはできますか?
以前、oracleを使っていたときはDababaseLinkというので
出来たんですが、似たようなものはないでしょうか。

今は別DBのテーブルとjoinできないので、
ループ内で毎回selectしてまつ
87名無しさん@お腹いっぱい。:03/10/12 14:23 ID:7Sn+DiZr
Postgre

これなんて読むの???
雑誌でよく見かけるけれど、未だに読み方知らないの。
88名無しさん@お腹いっぱい。:03/10/12 19:58 ID:???
>>86
できません。
89NAME IS NULL:03/10/13 12:23 ID:???
>>87
漏れはポストグレスと読んだりしてみる。
90NAME IS NULL:03/10/13 14:05 ID:???
「PostgreSQL」は

 「ポストグレス・キュー・エル」

と読む。

ただし、

 「ポストグレ・エス・キュー・エル」

と読んでも間違いではない、と言われている。
91NAME IS NULL:03/10/13 21:10 ID:IsgQZpBr
>>89,90
DBに携わってるくせして読み方知らなくて困ってたところでした。

ありがとうございますた!!

92NAME IS NULL:03/10/13 21:33 ID:ZNiejyhY
ちなみにGNUはヌーと発音するらしいよ。
動物のヌーのことなんだってさ!
93NAME IS NULL:03/10/13 22:49 ID:cGRdxZXW
初心者ですが、トランザクションの使い方に「?」です。

ふつうのシステムの場合、トランザクションなんて必要ないと
感じるのですが、本などに
「たとえば銀行システムなどでデータの整合性に過ちがあってはいけない場合
 トランザクションを使うと有効的です」
とあります。

いやいや、ふつうのシステムでもデータの整合性は重要だろうと思うのですが、
どうなんでしょう?

掲示板のようなシステムにもトランザクションを入れるべきなのだしょうか?

トランザクションの有効性について教えろ、ください。
94 :03/10/13 23:04 ID:Im1fJxU6
>>93
必要だしょう
95NAME IS NULL:03/10/13 23:13 ID:cGRdxZXW
>>94
質問の書き方が悪かった。です。

トランザクションの必要性はわかるのですが、
すべてのinsert文などに必要なのかと思ったのです。

なんか、ふつうのinsertとかなら必要ない気がするのですが、
selectでデータを拾ってきてそれを元に
updateする場合などにカンマ何秒のずれで整合性を
保つために必要なのでしょうか?

考え方あってるますか?
それとも電波ですか?
96NAME IS NULL:03/10/13 23:42 ID:???
>>95
その目的のためにはSELECT FOR UPDATEがある。
これはLOCKによって整合性を保つからトランザクションの
例としては適当でない。

トランザクションの必要性がわかるならそれでいいじゃん。
実務でシステム組んでみりゃあ、嫌でもトランザクションの
ありがたみがわかるよ。

ひとつヒントをやると、
なんで ROLLBACKができるのか考えるとよい。
おもしろいだろ、ROLLBACK実行すると、
トランザクションの開始前に状態が戻るんだぜ。
COMMITするとそのままDBに反映されるし。

複数の人が互いにトランザクションによって
処理が隔離されているってのもポイントだな。
97NAME IS NULL:03/10/14 18:42 ID:???
トランザクションのACIDについて説明されるときに必ず出てくるのが、
銀行のオンラインシステムですね。
98NAME IS NULL:03/10/16 13:22 ID:???
>>96
逆に彼は、普通のシステムなら全てトランザクション対象で、
じかにインサートして構わない場合だけ、トランザクションを
切る。

てなのが本当なんじゃないですか?

たまたま、トランザクションっていう処理が後から発明されたから
といって、オプション扱いする必要などないのでは?

と問うてるのでは無いでしょうか?
99NAME IS NULL:03/10/16 18:45 ID:???
>>98

95を読むかぎり、そうとは思えないが。
100NAME IS NULL:03/10/16 18:47 ID:???
>>98

さらにいうと、93=95はACIDのCしか気にしていない感じ。

101NAME IS NULL:03/10/17 14:39 ID:???
>>99-100
ども、ちゃんと読むとおっしゃるとおり。
ごめんなさいです。
102名無しさん@お腹いっぱい:03/10/22 21:17 ID:???
おまいら

Invalid EUC_JP character sequence found

ってなんよ!!

まじ助けて・・・
103NAME IS NULL:03/10/23 02:22 ID:???
書いてあるとおりなんじゃ
104NAME IS NULL:03/10/23 10:31 ID:???
データベースエンコーディングがEUC-JPになってないんじゃ
105名無しさん@お腹いっぱい:03/10/23 11:27 ID:???
ぬうううINSERT時にEUCにする方法あるのかな・・・
106NAME IS NULL:03/10/25 17:56 ID:z5OgLRCX
教えてください。
クロス集計クエリーを作っています。
ちなみに、seq_noはPKです。

select
(select count(seq_no) from baseinfo where equip_no = 30 and bun_no = 1 and status = 1 and rel1_no = b.rel1_no) as col1
(select count(seq_no) from baseinfo where equip_no = 30 and bun_no = 1 and status = 2 and rel1_no = b.rel1_no) as col2
(select count(seq_no) from baseinfo where equip_no = 30 and bun_no = 1 and status = 3 and rel1_no = b.rel1_no) as col3
(select count(seq_no) from baseinfo where equip_no = 30 and bun_no = 1 and status = 4 and rel1_no = b.rel1_no) as col4
(select count(seq_no) from baseinfo where equip_no = 30 and bun_no = 1 and status = 5 and rel1_no = b.rel1_no) as col5
(select count(seq_no) from baseinfo where equip_no = 30 and bun_no = 1 and status = 6 and rel1_no = b.rel1_no) as col6
(select count(seq_no) from baseinfo where equip_no = 30 and bun_no = 1 and status = 7 and rel1_no = b.rel1_no) as col7
from baseinfo
group by rel1_no
union all
select count(b.seq_no)
from baseinfo b
where b.equip_no = 30
and b.bun_no = 1
and b.status between 1 and 7) as goukei;

大体、上記のような感じなんですが、こいつをビューかストアドにしたいのです。
可変項目は equip_no = 30 and bun_no = 1 の部分です。
この場合、ビューは無理ですよね??
そこで、ストアドを検討しているのですが、戻り値のタイプの指定の仕方がわかりません。
アドバイスよろしくお願いします。

creat or replace function getTokei( int,int ) retunrs set of ???
as





107NAME IS NULL:03/10/26 12:19 ID:???
returns set of record
108NAME IS NULL:03/10/26 20:07 ID:???
>>102

cygwinにて同様の症状ではまりまくった経験が・・・

そんときは JLESSCHARSET=japanese-sjis ってやったら直った。
そのへんきちんと設定してる?
109108:03/10/26 20:08 ID:???
ごめん。ぼけてた。
PGCLIENTENCODING=SJIS

110NAME IS NULL:03/10/26 20:14 ID:HgBPAxle
>>107
ありがとうございます。早速試してみます。
ところで、また質問なんですが、
ストアドで、

select count(seq_no)
from baseinfo
where equip_no = 30
and bun_no = 1
and status = 7
and rel1_no = b.rel1_no
and rel2_no in (1,2)
) as col7

上記の、and rel2_no in (1,2)のようにinのリストをパラメータにしたい場合、どうすればよいでしょうか。
動的SQLにするしかないでしょうか?
よろしくお願いします。
111NAME IS NULL:03/10/28 21:21 ID:???
質問なのですが、PostgreSQLで正規表現を使った文字列置換処理はどうしたらいいでしょうか?
今は暫定的処置として、SELECTで検索してきた文字列をPHPで置換しそれをUPDATEする、という回りくどいやりかたをしています。
これだとやたら遅いのでできればやりたくないのですが、replace関数を使うと全ての文字列が置換されてしまうので仕方なくやってます。
substring関数をうまく使えないかなと思っているのですが…
よりスマートな解決方法がありましたらよろしくお願いします。
112NAME IS NULL:03/10/28 22:46 ID:???
頭悪そう…
113NAME IS NULL:03/11/01 05:02 ID:???
良さげなGUIの窓クライアントありませんか
114NAME IS NULL:03/11/02 11:42 ID:TMEN+++L
psql: could not connect to server: そのようなファイルやディレクトリはありません
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
psql起動したらこういうのが出ました。
どうやったら戻るんだっけ。
115NAME IS NULL:03/11/02 11:49 ID:???
postmasterが起動してないことを確認して
/tmp/.s.PGSQL.5432 を削除して postmaster を再起動。
116NAME IS NULL:03/11/02 15:17 ID:yw7/Ow55
>>115
>postmasterが起動してないことを確認して
確認
>/tmp/.s.PGSQL.5432 を削除して postmaster を再起動。
そのようなファイルはありませんと叱られました
先週、公道で猫を跳ねた事に関係してるでしょうか?
117名無しさん@お腹いっぱい:03/11/02 18:30 ID:???
SELECTと同時にUPDATEできないすか。

なんとか。


PostgreSQL 7.3.4 on RedHat
118NAME IS NULL:03/11/02 21:53 ID:???
どーゆーことよ?
119NAME IS NULL:03/11/03 13:44 ID:???
>>117
SELECTで抽出されたデータをUPDATE更新の対象としたいって事なんだろう。
WHEREにSELECT書いてはいけないなんて書いてないからやってみれば良いよ。
120NAME IS NULL:03/11/03 23:10 ID:???
>>116

おそらく猫の呪いによって、postgresのデータフォルダに"postmaster.pid"が出来てると思われる。
猫の冥福を祈りつつ削除すべし
121NAME IS NULL:03/11/04 04:20 ID:???
>>113
Common SQL Environment
122NAME IS NULL:03/11/04 21:00 ID:???
initdbが出来ません。助けてください

[PostgreSQL 7.2.1 - initdb startup]
The files belonging to this database system
--- > will be owned by user "NEC-PCuser"
This user must also own the server process.
"/usr/local/pgsql/data" has already existed.
initialize error(16)!
123NAME IS NULL:03/11/05 02:20 ID:1c90d1IF
アクセスログをとって、その都度別にテキストファイルに吐き出すことってできますか?
124NAME IS NULL:03/11/05 03:39 ID:???
>>122
> "/usr/local/pgsql/data" has already existed.
ってことだが?
125NAME IS NULL:03/11/05 04:49 ID:???
>>123
アクセスログの意味するところはなんじゃらほい
126NAME IS NULL:03/11/05 12:44 ID:???
>>123
access.log自体テキストファイルじゃないのかと・・
127NAME IS NULL:03/11/05 12:47 ID:???
>>122
/usr/local/pgsql/data
エラー内容からは既に存在してるって怒られてるよね。
そうじゃなければここのpath自体のパーミッションと権限の問題。
128NAME IS NULL:03/11/05 13:08 ID:K/TV52uS
ODBC(ADO)から VACUUM を実行するにはどうしたらいいいんだ〜???
129NAME IS NULL:03/11/05 15:11 ID:???
125,126
説明不足で申し訳ないです
今PostgreSQLで動いてるシステム?みたいのがあるんですけど
このシステムにログインしたときとログアウトしたときそれぞれ最近のものと
過去1回分だけが記録されているようなんです。

自分でつくったものでもないし、PostgreSQL自体もまだ初心者なものでわからないのですが
このログインログアウトの記録をどうにか全部とることはできないかなーと思ったわけです。
130NAME IS NULL:03/11/06 00:17 ID:???
PostgresSQLをEUC-JPで、PHPのスクリプトをShift-JISで利用したいんだけどうまくいきません。
どこを設定してやればいいですか?
131NAME IS NULL:03/11/06 00:21 ID:???
それってDBの話じゃないんじゃない?よく見えないけど。
普通DBにログインするとは言わないしなぁ。
132131:03/11/06 00:22 ID:???
>>129への話です
133NAME IS NULL:03/11/06 00:27 ID:???
set client_encoding='sjis';
134NAME IS NULL:03/11/06 11:23 ID:???
>>130
ねぇ、コードは合わそうよ。いろいろまんどくさいじゃん。
135NAME IS NULL:03/11/07 18:22 ID:???
クエリ内でMD5とかDESみたいなので符合化したい
んスが、そんな関数は無いんスよね
136NAME IS NULL:03/11/07 20:39 ID:???
contrib/pgcrypto/
137NAME IS NULL:03/11/08 06:53 ID:???
テーブルは存在してるからcreateできないよと言われて

\dしてみると

No relations found.

となる。再起動したらこうなったのですがなぜ?
138NAME IS NULL:03/11/12 20:51 ID:???
えーすきゅぅえる♪
139NAME IS NULL:03/11/15 03:13 ID:???
質問です。

TABLE A
ID | VAL1 | VAL2
01 10 5
02 15 8
03 9 2
04 10 0

というようなテーブルに対してUPDATEをしたいのですが、
UPDATEの元は

TABLE B
ID | VAL1 | VAL2
01 8 1
02 2 5
03 23 9
04 1 0

という別テーブルです。

ID同士は結合させるためのキー項目です。
AにあってBに無いIDもあります。

これを一発のSQLで行いたいのですが、どうしたら
良いでしょうか。
140NAME IS NULL:03/11/15 17:40 ID:???
>>139
一般的なSQLの話になると思うんだが

B のみに存在するレコードがないと仮定すれば

UPDATE A
SET A.VAL1=B.VAL1,A.VAL2=B.VAL2
FROM B
WHERE A.ID=B.ID

じゃないかな?
141NAME IS NULL:03/11/18 19:50 ID:u72w5U2h
create table test(
hoge int4,
fuga int4
);

としてテーブルを作ったとき,
hoge 列と fuga 列がダブることのみ禁止する
# どっちかが異なれば許す
ような制約の設定方法は?
142NAME IS NULL:03/11/19 00:47 ID:???
わかりにくい日本語だな・・・
CREATE INDEX index_name ON table (hoge,huga);

のこと?
143NAME IS NULL:03/11/19 02:24 ID:???
INDEXは違うだろ
144NAME IS NULL:03/11/19 03:19 ID:???
check (hoge <> fuga)

ちゃうやろか?
145NAME IS NULL:03/11/20 02:11 ID:???
CREATE TABLE test(
hoge int4,
fuga int4 check (hoge <> fuga)
);
と、
CREATE TABLE test(
hoge int4,
fuga int4,
unique (hoge,fuga)
);

の2案が出てるが・・・
(UNIQUE制約=INDEX作成、でないの?)
146DataSource:03/11/25 21:46 ID:???
私供はインターネット上でデータベースサービスを行おうとしています。

http://www.datasource.jp/

みなさんの御意見が欲しいのです。
また、他にPostgreSQLによるデータベースサービスをしているところはありませんでしょうか?
147NAME IS NULL:03/11/26 12:34 ID:TdSv51W9
面白そうですね!
コニカがオンラインラボで使用しているそうです。
148NAME IS NULL:03/11/26 13:41 ID:???
質問です。
PostgreSQLで作成したデータベース(hoge_db)があるとして、これのファイルが
実際にはディスク上のどこのなんというディレクトリと関連しているかを調べる
方法はありませんか?

/usr/local/pgsql/data/base/ のなかは数字のディレクトリしかないので、どれが
hoge_db のディレクトリなのかが判りません。
149NAME IS NULL:03/11/26 15:48 ID:???
>>148
SELECT oid,datname FROM pg_database;
150NAME IS NULL:03/11/27 02:51 ID:hvLbAuiD
初心者で申し訳ありません。
上のほうにも似たような?質問があるようなのですが、
PostgreSQLとPHPでつくられた学習のシステムがあって(e-larning)
利用者のIDや名前やメールアドレス、講義、講師などはすべてデータベースに
格納されています。

ブラウザでアクセスするとPHPでかかれたページし、
それぞれの学習者に応じたページがでてきます。

これをいじらなくてはならなくなり、
学習者がログインしていろんなページにアクセスされる度に
そのログをはきたいと思っています。
普通のアクセスログ(リモホや時間)は吐き出せるですが
データベースにあるその学習者のIDなどもいっしょに吐き出したいのです。

PHPで学習者のIDなどが格納されているテーブルに対して
pg_execとかnumcolumns,pg_resultをつかってPHPを書いたのですが
うまくいきません。

どうすればいいでしょうか?アドバイスをお願いいたします。
151NAME IS NULL:03/11/27 03:39 ID:???
それは最早PostgreSQLの話題ではないのではなかろうか?
152NAME IS NULL:03/11/28 12:30 ID:???
>>149
激しくサンクス!!!ありがd!!!
これで全てが解決しました!!!!!
153NAME IS NULL:03/11/28 13:33 ID:???
select distinct id, key from table order by key;

ではなく、order by 用の key なしで

select distinct id from table order by key;

ってできないものでしょうか。
154NAME IS NULL:03/11/28 14:00 ID:???
?
155155:03/11/28 18:55 ID:???
継承っていまいちわからん。
こんなふうに使えばいいのかな?

表示するスペックの違う商品群A,B,Cのdbを設計する場合、

Not Postgresql---------------------

商品マスタ_tbl
CREATE TABLE master_tbl(
id serial,
name text,
kakaku int
)

商品群A_tbl
CREATE TABLE A_tbl(
m_id int4 references master_tbl(id) ON DELETE CASCADE,
omosa int,
keizyou text,
zaisitu text
)

商品群B_tbl
CREATE TABLE B_tbl(
m_id int4 references master_tbl(id) ON DELETE CASCADE,
youryou int,
ph real
)

商品群C_tbl
CREATE TABLE C_tbl(
m_id int4 references master_tbl(id) ON DELETE CASCADE,
mol real,
noudo real
)

以上定義の後、Viewを定義

CREATE A_VIEW A_view AS
SELECT *.master_tbl, *.A_tbl from master_tbl,A_tbl where id = m_id
CREATE B_VIEW A_view AS
SELECT *.master_tbl, *.B_tbl from master_tbl,B_tbl where id = m_id
CREATE C_VIEW A_view AS
SELECT *.master_tbl, *.C_tbl from master_tbl,C_tbl where id = m_id
156155:03/11/28 18:56 ID:???
Postgresql-----------------------------
商品マスタ_tbl
CREATE TABLE master_tbl(
id serial,
name text,
kakaku int
)

商品群A_tbl
CREATE TABLE A_tbl(
omosa int,
keizyou text,
zaisitu text
) INHERITS (master_tbl);

商品群B_tbl
CREATE TABLE B_tbl(
m_id int4 references master_tbl(id) ON DELETE CASCADE,
youryou int,
ph real
)INHERITS (master_tbl);

商品群C_tbl
CREATE TABLE C_tbl(
m_id int4 references master_tbl(id) ON DELETE CASCADE,
mol real,
noudo real
)INHERITS (master_tbl);



こんな風に設計できるって考えればいいのかな?
継承使っている香具師の意見もとむ
157155:03/11/28 18:58 ID:???
>>156
ちょっと間違い

商品群B_tbl
CREATE TABLE B_tbl(
youryou int,
ph real
)INHERITS (master_tbl);

商品群C_tbl
CREATE TABLE C_tbl(
mol real,
noudo real
)INHERITS (master_tbl);
158NAME IS NULL:03/11/30 00:16 ID:Ysvje7EU
>>22
「PostgreSQL」の呼び方
PostgreSQLは読みにくい名前だ。その元のなったデータベースソフトウェアは、「Postgres(ポストグレス)」
という名前だった。SQLが追加され、開発がインターネット上で行われるようになると、名前は最後に「SQL」
が付けられるようになった。
PostgreSQLは、「ポストグレス」、「ポストグレエスキューエル」、などと発音されることがあるが、正しくは
「ポストゲレスキューエル」だ。公式Webサイトの
http://www.postgresql.org/
にWAVEやMP3ファイルがあるので、発音を聞くことができる。

         〜エキスパートから学ぶPostgreSQL活用テクニック はじめに より
159158:03/11/30 00:17 ID:Ysvje7EU
まちがた
ゲ→グ
160NAME IS NULL:03/12/05 19:14 ID:???
PerlからpstgreSQLの全データベース名を取得する方法ってありませんか?
データベースを列挙してから、好きなのを選んでconnectするように作りたいのです。
どうぞよろしくお願いします.
161NAME IS NULL:03/12/05 22:49 ID:???
template1 に接続して select datname from pg_database
162152:03/12/08 13:51 ID:???
>>153
ありがとうございます!
やっとできました!
おかげでtemplate1のことも分かったし、万々歳です!
どうもありがとうございました!!
163NAME IS NULL:03/12/18 14:13 ID:???
ReplaceとかTranslateって正規表現使えないの?

改行コードをただ別の文字に置き換えたいだけなのにできません。

SELECTするときです。

たーしけてー
164NAME IS NULL:03/12/19 01:08 ID:???
>>163
なんでもかんでもSQLでやろうとしない。
SELECTで取ってきたデータを自分で置き換えればいいでないの
165NAME IS NULL:03/12/22 13:49 ID:???
ALTER TABLE で VARCHARの桁数増やすことできるんですか。

50→100に 等。
166NAME IS NULL:03/12/22 17:24 ID:???
varchar 全部やめて効率のいい text 型にしたら。
167NAME IS NULL:03/12/23 18:21 ID:???
cygwinでPostgreSQLをインストールができません。
FreeBSD/Linux/Windows2000で使うPostgreSQL詳解
はじめてのPostgreSQLプログラミング

を読んだのですが途中でつまってしまいました。
何かよいサイトか本はありませんか?

あとcygwinのPostgreSQLはJDBCと接続できますか?
分かるからお願いいたします。
168 :03/12/23 19:25 ID:???
>>158-159
ポストゲレスに噴いた。
なんとなく快楽亭ブラック風でもあるな。
169NAME IS NULL:03/12/23 22:44 ID:???
>>167
ttp://www.nonsensecorner.com/pgsql/

どこでどう詰まったのかも言わずに助けを求めるのは無理があろう。
上のサイト見てもできないようならたぶん諦めたほうがいい。
170PIMP:04/01/01 16:14 ID:2bbOSaZO
まいど こんちは
だれかご教授ねがいます
POstgreSQL7.4+PHP4.3.4+Apache1.3.29の構成
あるテーブルに対してはPHPのCGI経由だとupdate,insert,deleteができません
もちろん、psqlコマンドからDBへ直接SQL文をたたく事には問題ありません
テーブル内容は
create table test (aa text,bb text,cc text,dd text,ee timestamp,ff int8,gg int8);
です
権限は
grant select,insert,delete,update on test to nobody;
です(nobodyがapacheユーザー)
特にエラーも吐かず、一見無事に実行されたかのうように見えるのですが、
updateもdeleteもされていません。
update文はこんな感じにしています
update test set aa=ahoaho where bb=baka

updateを行おうPHPの方は特に構文エラーもありませんし、他のテーブルに対しては
正常にupdate,deleteは行えます。このテーブルにのみできません。
もうこれで何週間も悩んでいます。
誰かぜひおねがいします。
171NAME IS NULL:04/01/04 02:24 ID:???
上のSQLは例えだよね?
まさか文字列リテラルをクォートしてないなんてことは・・・
まさかまさかとは思うけどトランザクション切ってないとか・・・

そういう次元の話でないのなら。
とにかくぜんぶsyslogに出す。どの段階まで上手く行ってるのかわかるから。
172NAME IS NULL:04/01/18 04:49 ID:???
どうしてもerrorの原因がわかりません
初心者ですが誰かご教授願います。

PostgreSQL7.4+PHP4.3.4+Apache1.3.29の構成で現在動かしているのですが、
PHPからDBをpg_queryしたところ、

Warning: pg_query(): Query failed: ERROR: column "????" does not exist .

とはいてくれます。
テーブルのほうにはきちんと????があるにもかかわらず、警告を出しているときって、
どういう罠に陥っているときが多いのでしょうか?

誰か知っている人いましたらご教授願います。
173NAME IS NULL:04/01/18 05:43 ID:???
????がカラム名省略してんのか文字化けなのか本当にそういうカラム名なのか判断できねーけど
ねーってエラーなんだからとにかくねーんだろが。DBやスキーマ違うとこにでも作ってんじゃねーの
174NAME IS NULL:04/01/18 10:46 ID:???
7.2から7.3に移行するとき変えなければいけないことって何?
どっかきちんとかいてるサイトない?
175NAME IS NULL:04/01/18 14:19 ID:???
>>174
あったら自分も知りたい。
とりあえず pg_dump したとき
default text 'now' を default now() にして動いてるけど。
176NAME IS NULL:04/01/18 22:13 ID:???
7.3のChangeLog読めば?
177NAME IS NULL:04/01/19 10:18 ID:???
>>176
ChangeLog 読んでもよく分からんよね。
178NAME IS NULL:04/01/21 23:14 ID:???
179NAME IS NULL:04/01/26 18:34 ID:GamryImu
インストール時の質問なのですが、

WinXp にインストールしようとして、
Cygwin、Cygipc、PostgresSQL、のインストールまでは、
何とか行きましたが、

ipc-daemon のサービス化がうまく行きません
∴それ以降のpostmaster のサービス化未テスト状態です

Cygipc のサービス化ってどうやったら良いですか?

$ ipc-daemon --install-as-service
を実行したのですけれど、

コントロールパネルからサービス開始しようとすると、
「ローカルコンピュータの Cygwin IPC Daemon サービスを開始出来ません
エラー 1053 : そのサービスは、指定時間内に、開始要求または、
制御要求に応答しませんでした」
とのエラーが出て、
Cygwin のコンソールからは、
「$ NET START IPC-DAEMON
サービスが制御機能に応答しません。」
とのエラーが出ます。
回避方法ご存知でしたら教えてください
お願いします
180NAME IS NULL:04/01/26 19:29 ID:???
>>179
ipc-daemon2にしろよ
181179:04/01/27 17:31 ID:???
>>180
亀レスになってしまいましたm(__)m
今日ネットに繋がらなかったので・・・

ipc-daemon2 でも駄目でした
cygwin、cygipc、のそれぞれの対応バージョンが
違うのかもしれません
またテストしてレス致します
ありがとうございました
182NAME IS NULL:04/01/27 17:44 ID:???
>>181
ZoneAlarm や Outpost などの FW 入ってない?
警告なしでブロックしていたことがあったようななかったような。
183:04/01/28 00:23 ID:E9K82Ek2
いまORALCE7ですが、Postgresに変えて大丈夫かな?
コケまくりで徹夜なんてしたくないんだが、どうでしょ?
フジ痛がPostgresのセミナーしてるみたいだけど何教えてくれるんだろう。
184179:04/01/28 11:27 ID:???
>>182
ノートンが入ってます・・・
とりあえず、手動での起動終了で我慢しようかと…
情報ありがとうございました
185179:04/01/28 13:45 ID:???
ぐわ大間違い
サービス設定してないと、
インスコ終わってもそのあと何もできん?_| ̄|○
186179:04/01/28 16:15 ID:???
cygcrypt-0.dll
がないと、postmaster が怒ってきた
・・・cygwin、cygipc、ディレクトリ内にもない・・・
もうだめぽ_| ̄|○
187NAME IS NULL:04/01/29 09:14 ID:???
cygcheck -c | egrep -i 'cygwin|postgresql|cygipc'
はしたのか。
バージョンがそろってなきゃだめぽ
188NAME IS NULL:04/01/29 09:56 ID:???
189179:04/01/29 13:45 ID:???
>>187
cygwin は、1.5.6-1 と出てきました

Cygwin Package Information
Package Version Status
cygwin 1.5.6-1 OK

他は、情報無し?ですかね?
何も結果が出ませんでした

>>188
ありがとうございます、未知のサイトでした
これから調べます
190NAME IS NULL:04/01/29 17:08 ID:???
ポスグレ入ってねーじゃんよ。
漏れのはバージョン古いけど、
$ cygcheck -c | egrep -i 'cygwin|postgresql|cygipc'
Cygwin Package Information
cygipc 2.02-1 OK
cygwin 1.5.5-1 OK
postgresql 7.3.4-2 OK

191NAME IS NULL:04/01/29 21:03 ID:???
>>190
>>186 で postmaster が怒ったと言っているので
>>189 は egrep で postgresql をスペルミスしたんじゃないかな。

とりあえず >>179>>188 を知らないということは
「cygwin postgresql 7.4 インストール」を Google した結果ページを
全部読むことをお勧めしたほうがいいかも。
192191:04/01/29 21:05 ID:???
一回 cygwin をアンインストールしてゼロから再出発したら?
193179:04/01/29 21:41 ID:???
>>190
cygipc、postmaster を共に手動で立ち上げたら、
psql template1
で接続までできたので、インスコはされていたと思います

スペルミスか、インスコしたディレクトリが、
pgsql だったので、勘違いしてpgsqlと打ち込んだのかもしれません
m(__)m

>>191
はい、上記手順で、再出発してます

前のエラーで、dllが無い、という内容でエラーが出たので、
別マシンに、cygwin フルインストールしたのですが、
この場合だと、
>>188
のページでいう
postgres ユーザーでの initdb 実行まで正常に出来ました

なんとなくですが、cygwin、のバージョン違いと、
インストール時に、デフォルトのままでは、必要なdllが入らなかった
のが原因のような気がします

…まぁ、ワタクシ本人の無知が一番の(ry

えと、レスいただいた皆さん、
本当に、有難うございましたm(__)m
194179:04/01/31 18:23 ID:???
おらっしゃ〜全部完了♪

でも、完了後に、探してたCygwinの本が見つかるなんて・・・
「すべての問題が解決した後に、
最良の解決策が見つかる(マーフィーの法則)」
ってな感じだなぁ・・・
195NAME IS NULL:04/01/31 18:30 ID:???
本なんか売ってるのか。

そんなの要るか?
196179:04/01/31 18:45 ID:???
>>195
検索@アマゾンでは、以下3件ヒットしました

http://www.amazon.co.jp/exec/obidos/ASIN/4798005576/ref=sr_aps_b_/249-9405375-8885921
http://www.amazon.co.jp/exec/obidos/ASIN/4756143059/ref=sr_aps_b_1/249-9405375-8885921
http://www.amazon.co.jp/exec/obidos/ASIN/488648686X/ref=sr_aps_b_2/249-9405375-8885921
とりあえずその店に、2番目があったので買ってみましたが・・・
チト読んでみたところ今回の事に関しては、
あまり役にはたたないような気が・・・
とりあえず、ワタクシみたいに、
「 Linux ほとんど触ったことなし + Cygwin ってナニ?」
って人向けかなという気が致します
197NAME IS NULL:04/01/31 18:52 ID:???
それにしてもAllAboutJapanなんかで記事探せばわんさかヒットするわけだが
198179:04/01/31 19:03 ID:???
>>197
今ソコに行ってみましたが、
めちゃめちゃひっとしました
おそらくこれから開発時に向けて必要だと思われることも
ありがとうございました(泣)m(__)m
199NAME IS NULL:04/01/31 19:06 ID:???
え?開発時?
素人が開発するのか?これから?
まさか業務マじゃないよな?趣味だよな?
200179:04/01/31 19:08 ID:???
>>199
今までは、VCでスタンドアロンのアプリ開発してました
DBはオラクルを少しやってましたが
まぁしばらく悪戦苦闘は必須かなと思います
201NAME IS NULL:04/01/31 22:21 ID:???
質問です.
psqlで作ったテーブルをperlで操作したいと思ってます.
insertとかselectとかはできるんですけど,
alterを使った,フィールドの追加削除リネームができません.
そもそも他のユーザは,alterによる編集は不可能なんですか?
202NAME IS NULL:04/02/02 11:44 ID:???
>>201
できるよ。権限がないんじゃないの?
203201:04/02/03 13:07 ID:???
>>202
レスありがとう.
grant all on table_name to public

↑を入力して全てのユーザ(public)に権限を与えたんですけど
どうやらallが意味するものは
select,insert,update,delete,rule
のみなようです.残念.
なんだかperlでは操作できそうにないっぽいですね.
204NAME IS NULL:04/02/03 14:07 ID:???
>>203
create table 権限が必要。alter user を見てみ。
205NAME IS NULL:04/02/03 15:50 ID:9YVWdlg+
ASPサービスで使うようなイメージなのですが、
同じテーブル構成(テーブル名や関連付けなど)を複数作って
管理する場合(※随時増えたり場合によっては削除する)、
別DBにそれぞれ格納してしまうと、joinができなかったり、
データをさっくり比べたい時などに不便だなと考えています。
そこでスキーマを使うという手を考えたのですが、
まだ実用段階ではないのでしょうか。
しかもバージョン7.3.3なのです・・・。
何か思いつくままにでもアドバイスを頂けないでしょうか。

web上で検索などして探してみたのですが、あまり実用的な説明が見つからなかったもので。
よろしくです。
206NAME IS NULL:04/02/03 16:00 ID:???
>>205
スキーマのバグは聞かないけど
同様にスキーマの利用例も聞かないね。
テストしまくってバグがあれば報告して 7.4.1 以降に移行したら。
207NAME IS NULL:04/02/03 16:35 ID:???
データベースに入っている時間のデータがUTCなので、
ローカルタイムにするために+9時間したデータを出力したいのですが、
どういうセレクト文にすればいいんでしょうか?
というか、そういうことできるんですか?

ちなみにデータ形式は
2003-01-29 16:05:28
という感じです。
208NAME IS NULL:04/02/03 17:19 ID:???
>>207
単純に+9時間したいだけなら、

SELECT 日時+'9 hour' FROM hoge;
209208:04/02/03 19:57 ID:???
解決しました!
ありがとうございます! ちょっと感動
210207:04/02/03 19:58 ID:???
207でした、すいません
211NAME IS NULL:04/02/03 21:10 ID:???
昨日からpostgreSQLの勉強始めました。
一通り本に目を通して、いよいよ俺が扱いたかったデータを取り込んだのだが、
SELECTでテーブルの全データを表示させようとすると、

less: not found

って表示されるんです。
たぶん量が多すぎてこうなるんだと思うんだけど、なんか解決策はありますか?
ちなみにcygwinで動かしてます。
212NAME IS NULL:04/02/03 21:22 ID:???
>>211
less: not found って?
いったいどんな本を読んだんだろう。
213NAME IS NULL:04/02/03 21:33 ID:???
メッセージ通り less が見つからないのです。
less を cygwin の setup からインストールしてごらん。

less は「ページャ」と呼ばれるソフトで
psql で select した時に画面以上の件数が出たら
出力を区切って出す奴ね。

less は常識中の常識なのでネタと思われても仕方ないね。
UNIX や cygwin について Web や本でもう少し勉強すると世界が広がると思うよ。
214NAME IS NULL:04/02/03 21:46 ID:???
>>213
どうもありがとうございます。
「CygwinでpostgreSQLをWindowsで使う本」
っていうのを読んで勉強してます。
常識中の常識だったんですね。
Googleでいくら検索しても見つからなかったので不思議に思ってたんですよ。
215NAME IS NULL:04/02/03 22:49 ID:???
思うんだけど、でガイシュツでもあるんだけど、
そんなの本買うほどのことか?
Webで情報収集すら出来ないような奴が本を買うのか?
思うにそんな奴が本買ったところで、所詮出来ることは限られてくるんじゃないか?
216NAME IS NULL:04/02/03 23:48 ID:???
Oracleで言うrownum指定は、postgresではどのように指定すればよいのでしょうか?
217NAME IS NULL:04/02/04 00:01 ID:???
limit と offset で指定できるんですね、お騒がせしました。
しかも rownum よりも使いやすそうです。
218NAME IS NULL:04/02/04 00:49 ID:fFY5eBen
>205

7.3.xのスキーマはnamespaceを指定してdumpできなかったり、joinで
うまく動作しないケースがあったりするなど、細かいところで機能不足
なところがあります。期待しない方に一票。

1年ねとげーでPGをサボってたので、7.3.2以降は知らんけど
7.4.xで改善されてるんじゃないかな。


219NAME IS NULL:04/02/04 01:17 ID:fFY5eBen
>217

limitって、重複データがあるときでも強制的に格納順で打ち切られ
るので、rownumとは微妙に違うかも。同様にsequence()も応用が利き
にくいしな〜(データをグループ分けしてナンバリングするときなど、
使えないに等しい)。
個人的にはrownumの方が利便性が高いような気がします。別にoracle
fanではないけど。







220NAME IS NULL:04/02/04 01:47 ID:???
>>219
何が便利って、limit・offsetはorder by後の結果で持ってこられるところ。
order byで指定した順でrownumを取得したい場合、副問合せしなくちゃならない。
221NAME IS NULL:04/02/04 21:36 ID:fFY5eBen
>220

重複のないデータであればlimit/offsetがrownumの代わりになると思います。
ただし、たとえば1〜4位まで各1人が入賞し、5位に3人、8位1人入賞したよう
なデータがあった場合、そこから6位以降の人を取り出すような問い合わせ
が、rownumと違い容易ではないということです。 
重複があっても無視できるよな場合(ページごとに30件ずつ取り出して表示
するなど)はlimit/offsetの方が便利だとは思います。
222NAME IS NULL:04/02/04 23:51 ID:???
rownumがorder byよりも後に割り振られれば最強
223NAME IS NULL:04/02/05 21:32 ID:P83QRT4M
windowsでそのままつかえる、postgreSQLってどこでダウンロードするの??
だれかオセーテー
224NAME IS NULL:04/02/05 22:06 ID:???
>>223
Google って知ってる?とりあえずここ。
ttp://www.interwiz.koganei.tokyo.jp/software/PostgreSQL/windows.html
225NAME IS NULL:04/02/06 14:50 ID:U4rNRYwJ
JPUGはもうダメポ(´・ω・`)
226NAME IS NULL:04/02/06 14:54 ID:U4rNRYwJ
JPUGはオープンソースに名を借りた恐ろしい談合集団で怖いです。
国家予算や産学予算にばかり狙って粘着してます。
石井を始めうざい連中はどっか逝って下さい。
今まで黙ってたけどいい加減頭に来るので晒して行こうと思います。
227NAME IS NULL:04/02/06 14:54 ID:r07WzhnJ
228NAME IS NULL:04/02/06 16:17 ID:???
詳細キボンヌ > 226
229NAME IS NULL:04/02/06 17:59 ID:???
explain 結果の見方を解説したページなり本はありませんか?
cost が大きいと遅いのは分かるのですが、rows や width について知りたいです。
230NAME IS NULL:04/02/06 18:17 ID:???
231229:04/02/06 18:46 ID:???
>>230
ありがとうございました。
7.4 のはここにありました。微妙に内容が変わっていますね。
http://www.postgresql.jp/document/pg74doc/html/performance-tips.html
232229:04/02/06 20:21 ID:???
この「様式化」の意味と
なぜ 3 つ以上の列を使っているのが不適切なのか、
また、どうするべきなのか解説いただけないでしょうか。
# あと、解説できる人はどこで勉強したのか知りたいです。

http://www.postgresql.jp/document/pg74doc/html/indexes-multicolumn.html
| テーブルの使用方法が極端に様式化されていない限り、3つ以上の列を使用しているインデックスは、
| ほぼ間違いなく不適切であると言えます。
233NAME IS NULL:04/02/06 20:57 ID:???
詳しくは分からないんだけど、ドキュメントを読んだ限りの理解では、
PostgreSQLのプランナでは、複数カラム(例a,b,c)のインデックスが
有効になる場合は非常にレア(whereでa,b,cをjoin、a,bをjoin、aのみ)なので、
あんまり使われないよ、と。
だから、インデックスを作る時間とスペースが無駄、と。

それに、実際には1ないし2カラムのインデックスで事足りるから、
よっぽどパターン化されたテーブルでないと、3つ以上のカラムの
インデックスはほとんど意味ないよ、と。

「様式化」の意味がよく分からないけど、原文によると「styled」となっているから
おそらく、カラムa,b,c,...のデータの混ざり具合のことを言ってるんじゃないかな。

http://www.postgresql.org/docs/7.4/static/indexes-multicolumn.html
234232:04/02/06 21:29 ID:???
>>233 どうもありがとうございます。

MySQL や Oracle で 1 秒を切る select count(*) などが
PostgreSQL だと 20 秒以上かかり、チューニングのことをいろいろ調べております。

原文に読む、という考えが抜けて(逃げて)おりました。
原文のほかの箇所で styled がどう使われているかなど調べたいと思います。
ソースを読むのが一番なのですが、C は分かっても
DB のことが何分よく分からないので何をしているのかチンプンカンプンなのが悲しいです。
Apache や ruby, 太古の UNIX にはソース解説本がありますが、
「ソースから学ぶ PostgreSQL」なんてあると嬉しいです。
235NAME IS NULL:04/02/07 22:16 ID:???
>>234
Oracleとかはselect count(col) とかして、colのインデックスを作成していたら
インデックスを使ってカウントしているみたい。今では*でもプランナが、
有用なカラムを選択してインデックススキャンしているかも。
* じゃ無くてカラム指定すると速いという記事をたまに見かける。
ML pgsql-jpでもカラム指定してみれば? というアドバイスをたまに見かけるけど、
PostgreSQLではどうやってもシーケンススキャンしてしまうような感じです。

根本的な解決ではないが、vacuum full で不要領域削除すればその分だけ
速くなる。
236NAME IS NULL:04/02/08 00:56 ID:???
>235
>Oracleとかはselect count(col) とかして、colのインデックスを作成していたら
>インデックスを使ってカウントしているみたい。

ふつうのB-Treeインデクスをcount()に使うメリットってないんじゃ
ないかな?Oracleもそんなことしてないと思うが。
237NAME IS NULL:04/02/08 03:04 ID:???
>>236
同じマシンスペックで同じデータをテストするとそうなのですが…。
238237:04/02/08 03:10 ID:???
>>237
PostgreSQL 7.4.1, MySQL5, Oracle9 で、
Apache のログ 50 万件でのテストです。
like や = で PostgreSQL は 10〜20 秒くらいかかります。
239NAME IS NULL:04/02/08 12:31 ID:???
likeは、like '%hogehoge%' として部分一致や後方一致を選ぶと、
インデックスが使われない。

=はよく分からないけど、SQL文とexplain見たら何か言えるかも。
240NAME IS NULL:04/02/08 16:49 ID:???
>>238
それってcountじゃなくて、選択にindexが使われるかどうかの話じゃ?
別にcount(*)じゃなくても、select *でも同じような結果になるはず。

異なるDBMSで実行時間だけ比較したって、そのDBMSのプランナが
ヘボいのか、単にまともなチューニングがされていないだけなのか
なんて判断できないし。
#まぁ実際PostgreSQLのプランナはヘボいけど。
まずは実行計画見てみよう。

>Apache のログ 50 万件でのテストです。
>like や = で PostgreSQL は 10〜20 秒くらいかかります。

結果行数いくらくらいの条件でテストしたんだろう?もし単表検索で
結果行が数百行程度だとしたら、よっぽど性能が低いマシンを使って
いるかチューニングができていないかどっちかだな。
241NAME IS NULL:04/02/09 11:47 ID:2C+RVdrk
すみません、教えてください。
selectを使って抽出したデータを、ファイルに保存したいのですが、
どうしたらよいでしょうか?

よろしくお願い致します。
242NAME IS NULL:04/02/09 12:53 ID:???
一時テーブルにコピーして \COPY コマンドを使う。
243Posgre初心者:04/02/12 08:58 ID:Z7QtELNG
別スレでも同じ質問してます。すみません。

現在 Windows2000 SERVER 上でPostgreSQLを動作させる為にソフトのインストールを行っています。
cygwin 2.416
cygipc 1.14
postgresql 7.4.1
を使用しています。
Windows2000 PRO では問題なくインストール出来て動作していますが
Windows2000 SERVERだと initdb -E EUC_JP を実行した時
fixing permissions on existing directory /usr/local/pgsql/data... ok
creating directory /usr/local/pgsql/data/base... ok
creating directory /usr/local/pgsql/data/global... ok
creating directory /usr/local/pgsql/data/pg_xlog... ok
creating directory /usr/local/pgsql/data/pg_clog... ok
selecting default max_connections... 10
selecting default shared_buffers... 50
creating configuration files... ok
creating template1 database in /usr/local/pgsql/data/base/1... FATAL: could not
create shared memory segment: Function not implemented
DETAIL: Failed system call was shmget(key=1, size=1081344, 03600).
と言うエラーが出て失敗します。
initdb を行う前にipc-daemon2 & も実行していてタスクマネージャーのプロセスで
起動しているのは確認できています。
またipc-daemon2 & を実行していなくても同じメッセージでエラーになります。
cygipcの設定等でSERVER用に何かあるのでしょうか?
同じ方法でインストールした2000PRO(プロフェッショナル)では問題ないので
困っています。どなたか判る方いませんでしょうか?


244NAME IS NULL:04/02/13 03:57 ID:rre/TDii
PostgreSQL 7.4.1をさっきインスコしてみたんだけど、どうもおかしい。

create table s(a text);
insert into s values('あ');
insert into s values('い');
insert into s values('う');
insert into s values('えお');

【クエリ】
select * from s where a='ん';

【結果】
a
----



(3 rows)

・・・ナンデ?_| ̄|●
245NAME IS NULL:04/02/13 13:07 ID:???
再現できなかったにょ・・・。
246NAME IS NULL:04/02/13 13:57 ID:???
文字コード関係じゃないの?

SET ALLでencoding関係調べてみ。
ソースからインストールしたならconfigure時かDB作成時にEUC_JP設定してるよね。
247NAME IS NULL:04/02/13 15:51 ID:???
失礼、

SET ALL じゃなくて、SHOW ALL
248244:04/02/13 16:27 ID:rre/TDii
>>244-247
ちなみに文字コード関連じゃなさそうです。
EUC_JPでもSQL_ASCIIでも同じ症状。

まったく訳わからんのは、日本語文字に限り
文字数が一致したら等号演算がTrueを返すってところ。
Ver7.4.1でダメだったから7.3.5入れてみたけど同じ症状が発生。
7.1.3まで落としたら治りました。

もしかしたらLinux自体のバージョンかも・・・。
↓かなり古い奴です。
Vine Linux 2.1.5 (Calon-Segur)
Kernel 2.2.18-0vl4.2 on an i686
249NAME IS NULL:04/02/13 17:10 ID:Wi1Z6lQf
本の貸出管理データベースで、どの本がいつ借りられたか(貸出期間一週間として)、また自分が借りる時はデータベースに、どの本をいつ借りたか、という内容を扱えるデータベースを作りたいんですけど、どのように設計したらうまくいきますか?教えて下さい。
250NAME IS NULL:04/02/13 20:33 ID:WELrMNyo
すいません、初心者です。
毎日の”天気”、”温度”、”湿度”、”出た尿の総量”、”運コの重さ”をデータベースで管理したいんですけど
どうすればいいのでしょうか?

一応色々調べたんですがまったくわかりません。
シャレとかじゃなくて真面目な質問です。
どなたか、わかる方お願いします。
251NAME IS NULL:04/02/13 20:43 ID:???
>249
>250
設計丸投げ野郎はどっか逝け。
252NAME IS NULL:04/02/13 21:04 ID:???
>>250
>>一応色々調べたんですがまったくわかりません。

調べ方が悪いと思います。あと3年くらい調べても分からなかったら、
改めて聞きにきてください。待ってます。
253NAME IS NULL:04/02/13 22:15 ID:???
>>251
設計丸投げとかじゃないです

>>252
約3ヶ月しか経ってませんからまだまだですね。

何か、色々な本を読みすぎてわけわからなくなってます
ER図とかいうの作ったんですけどなんだかしっくりきません。

取っ掛りが上手くいかないんですよ
まぁ、ある程度は作ったんですけど・・
スレ汚してごめんなさいでした。
254NAME IS NULL:04/02/13 23:40 ID:???
>ER図とかいうの作ったんですけど
まあ、お前は作ったと思っているだろうけど
本当は作れてなんかいないと思うよ。
255NAME IS NULL:04/02/14 01:32 ID:???
>>248
7.2だか7.3からは、initdb で --no-locale 入れること
EUC-JPも、make時じゃなくてここで入れる

$ initdb --no-locale --encoding=EUC-JP
256255:04/02/14 01:33 ID:???
EUC_JP だった。あちこち違うから大変だな・・・
257NAME IS NULL:04/02/14 03:21 ID:???
>>250

DBを使う必要はない。ファイルでじゅうぶん。

毎日の”天気”、”温度”、”湿度”、”出た尿の総量”、”運コの重さ”なら、

username,date,weather,temp,humidity,pee,poo
......


でいいんじゃない。検索はPerlででもやれば。
258244:04/02/14 05:14 ID:wJPgykvM
>>255 ビンゴだった。感謝。

>>249 >>250 板違い。それ以前にDB環境揃えているのか疑問なのだが。
259Posgre初心者:04/02/14 20:37 ID:K8DOvVy5
>> 243です。
自己レスです。
cygwinのバージョンがWindows2000 SERVERが1.5.7、
Windows2000 PROが1.5.5でした。
一日違いのインストールで何故Windows2000 SERVERが1.5.7で
Windows2000 PROが1.5.5になってしまったかは分かりません。
ただWindows2000 SERVERにcygwin 1.5.5をインストールすれば
問題なく動作しました。cygwinはsetup.exeでインストールしているので
自動で最新がインストールされていると思っていたのですがどうも
Windows2000 PROでインストールした時は1.5.5が入ったようです。(何でだろ〜???)
cygwin 1.5.7 では何度再インストールしてもinitdbはやはりエラーになります。
ipcsでも共有メモリ等が設定できていませんでした。(ipc-daemon2 &は実行済み)
と言うことでcygwin を1.5.5で運用します。

260NAME IS NULL:04/02/15 11:27 ID:7KEaGl15
>>254
ちゃんと作りましたよっ
Diaというソフトを使いました。

何でしっくりこなかったかというと。
テーブル1つしか要らないだろうものを大げさに考えてたからです。
出来上がったER図が妙に意味の無い単純なものでコイツは絶対におかしいとか考えてました。

>>257さんの
テキストで十分でひらめきました。

ありがとう。
261NAME IS NULL:04/02/15 14:41 ID:???
>>260
その ER 図を公開したら建設的な意見がもらえるかもしれませんよ。

「どのように設計したらうまくいきますか?」だけでは
丸投げと思われても仕方がないでしょう。
262NAME IS NULL:04/02/15 15:58 ID:???
>>260
言葉の意味も読みとれないお前は、向いてないかも知れないな。

出来上がったそれがER図として役に立たないなら、それはすでにER図ではない。
つまりお前にはER図は作れていない。
ER図の書式に乗っ取ったラクガキは作れたかも知れないが。
263NAME IS NULL:04/02/15 18:41 ID:???
Mainichi INTERACTIVE Mailより。



Cover Story★★…………………………………………………………………………………
       SI業界はデフレ・スパイラル?
         同じ情報サービス業界 業態で明暗くっきり
…………………………………………………………………………………★★Cover Story

 受託開発を主業とするシステム・インテグレーター(SI)会社の業績回復が遅れて
いる。回復はおろか、前期に比べ大幅に悪化するところさえ非常に多い。一方で、サ
ーバー、ネットワークなどの構築を営む基盤構築企業は業績回復が鮮明だ。同じ、企
業の情報化投資を担う企業でありながら、なぜ、違うのか? SI業界は「デフレ・ス
パイラル」かもしれない。
264NAME IS NULL:04/02/15 18:42 ID:???
■■好調な基盤構築系の企業

 昨年5月以降の株式相場上昇など景気の改善を受け、企業の情報化投資が動き出し
た。しかし、2003年度ではまずインフラ整備が優先されている。企業はネットワーク
のブロードバンド対応、2000年問題に対応する時に導入したサーバー更新に動いた。
ネットワーク構築、サーバー構築を営む企業の業績回復は、これを受けた結果であ
る。

 本来であれば、来期は受託開発系企業の業績回復が予想されるのだが、どうもこの
関係企業には自信がないようだ。過去においては、受託開発系企業の業績は基盤構築
系の企業に半年から1年遅行する傾向が観察された。

 システム構築を高層ビル建設にたとえると、いきなり最上階から建設することは不
可能である。まずは、土台となる基盤構築工事が先行する。システムの世界もこれに
同じである。まずは、業務システムが稼動する基盤(ネットワーク、サーバー、スト
レージ、ミドルウエアなど)の設計から始まるのである。これと同様に、今期の基盤
構築系企業の好調は、そのまま来期の受託開発系企業の回復を示唆するはずなのだ
が、現実を見るとそうならない要素が見えてくる。
265NAME IS NULL:04/02/15 18:42 ID:???
■■最大の不安は過度な値下げ圧力

 まず、最大の不安要因は、受託開発サービスの世界を蝕む過度な値下げ圧力だ。昨
今、SI会社の中で「不採算案件の発生」を理由に業績下方修正を発表する企業が相次
いでいる。大手では3社に1社の割合で、中堅以下は10社に9社とほぼ壊滅である。
ここまで各社が共通して「不採算案件の発生」を業績不振の口実にあげたのはおそら
く今回が初めてであろう。これはSIサービスの世界が過度なデフレ・スパイラルに入
ったことの証ともいえる。

 ここまで「不採算案件の発生」が強調されると、競争過多のあまり、本来、到底請
け負えない金額での安値受注が横行しているのではないかとさえ思う。この業界は大
手元受業者による安値受注が中堅以下の下請けSI会社にも波及するため、メーカーを
含む大手SI企業の安値受注合戦は業界全体の危機と言えよう。

 確かに日本のSIサービスは国際的に見て割高な点がかねてから指摘されていた。中
国への外注、海外パッケージ導入などにより、少しづつに是正されて行くのは自然で
ある。しかし、対応力を超える過度な値下げは、また、そこまで競わせるユーザーの
リテラシー低下は問題だろう。
266NAME IS NULL:04/02/15 18:43 ID:???
■■「トラブル多発」イコール「ユーザーの不利益」

 この先、日本のSI業界は本格的な構造改革期を迎えよう。最近、銀行の勘定系シス
テムのように従来トラブルなどありえなかった巨大システムの事故が後を絶たない。
こうした事故は複雑巨大化する基幹システム、2007年問題、レガシーからオープン
へ、そして過度な値下げ競争、現在SI業界が抱えるさまざまな問題が集約された帰結
と思える。

 「システムトラブル多発」はイコール「ユーザー(利用客)の不利益」であり、そ
のまま、企業の不利益だ。その意味で発注する企業の情報サービス部門は、システム
投資のあり方を見直し、それを受けるSI企業も開発のあり方を見直す時期に入ったと
言えよう。

 そうした見直しが行われれば、顧客サービスの安定、便利さで10年後、ユーザーの
情報サービス部門はかつての復権を取り戻し、CIO(Chief Information Officer)の
社内ステータスは今以上に高いものになっていよう。ただ、SI会社は淘汰され、企業
数が半減している可能性はある。だが、残った会社は顧客企業と適正な価格での取り
引きが行われ、健全な経営のもとで、そこが作ったシステムが安全に稼働し企業とそ
の顧客に役立っていると考える。


267NAME IS NULL:04/02/15 18:48 ID:???
>>対応力を超える過度な値下げは、また、そこまで競わせるユーザーの
>> リテラシー低下は問題だろう。


>> ただ、SI会社は淘汰され、企業数が半減している可能性はある。


おまいら、SIなんてやってていいのですか。
デフレ圧力で単価の異常に安そうな(260のような)プログラマが
ER図とやらを書いてシステム作る時代だ。

DB板にはりついてるようなおれたちのような連中に明日はなさそうだぞ。
268NAME IS NULL:04/02/15 19:08 ID:???
>おまいら、SIなんてやってていいのですか。
             ↓
>おまいら、死なんてやってていいのですか。
269NAME IS NULL:04/02/16 13:35 ID:w03qSW6m
redhatで構築してますが。
./configure --with-java
./gmake
gmakeでインストールにつまっとります・・
javaのコンパイルでエラーに・・なぜだ・・。
270NAME IS NULL:04/02/16 16:56 ID:???
>>269
もっと詳しい状況説明がないと答えようがないだろ、阿呆。
ほんとに阿呆ばっかりだな。


で、CLASSPATHはちゃんとしてんの?BINに/xxx/jdk/bin は入ってんの?
271NAME IS NULL:04/02/16 16:57 ID:???
>> 269

つうか、javaインストールしてんだろうな。
272NAME IS NULL:04/02/17 02:20 ID:???
javaんときはantにもパス通ってないと無理じゃなかったか
273NAME IS NULL:04/02/18 10:52 ID:???
すんません、エラーは長いですがこんな感じ
[javac] Compiling 77 source files to /usr/local/src/postgresql-7.4.1/src/interfaces/jdbc/build
[javac] /usr/local/src/postgresql-7.4.1/src/interfaces/jdbc/org/postgresql/jdbc3/Jdbc3Statement.java:28:
error: Invalid checked exception class `java.sql.SQLException' in `throws' clause.
The exception must be a subclass of an exception thrown by `org.postgresql.jdbc1.AbstractJdbc1Statement.createRefCursorResultSet(java.lang.String)'
from class `org.postgresql.jdbc1.AbstractJdbc1Statement'.
[javac] public PGRefCursorResultSet createRefCursorResultSet (String cursorName) throws SQLException
[javac] ^
[javac] /usr/local/src/postgresql-7.4.1/src/interfaces/jdbc/org/postgresql/jdbc3/Jdbc3PreparedStatement.java:23:
error: Invalid checked exception class `java.sql.SQLException' in `throws' clause.
The exception must be a subclass of an exception thrown by
`org.postgresql.jdbc1.AbstractJdbc1Statement.createRefCursorResultSet(java.lang.String)'
from class `org.postgresql.jdbc1.AbstractJdbc1Statement'.
[javac] public PGRefCursorResultSet createRefCursorResultSet (String cursorName) throws SQLException
[javac] ^
[javac] /usr/local/src/postgresql-7.4.1/src/interfaces/jdbc/org/postgresql/jdbc3/Jdbc3PoolingDataSource.java:29:
error: Method `org.postgresql.jdbc2.optional.PoolingDataSource.getDataSource(java.lang.String)' was defined with return type
`org.postgresql.jdbc2.optional.PoolingDataSource' in class `org.postgresql.jdbc2.optional.PoolingDataSource'.
[javac] static Jdbc3PoolingDataSource getDataSource(String name)
[javac] ^
[javac] /usr/local/src/postgresql-7.4.1/src/interfaces/jdbc/org/postgresql/jdbc3/Jdbc3CallableStatement.java:23:
error: Invalid checked exception class `java.sql.SQLException' in `throws' clause.
The exception must be a subclass of an exception thrown by `org.postgresql.jdbc1.AbstractJdbc1Statement.createRefCursorResultSet(java.lang.String)'
from class `org.postgresql.jdbc1.AbstractJdbc1Statement'.
[javac] public PGRefCursorResultSet createRefCursorResultSet (String cursorName) throws SQLException
[javac] ^
[javac] 4 errors
274NAME IS NULL:04/02/18 10:54 ID:???
パスは通しているんですが。。
$ echo $PATH
/usr/kerberos/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/local/j2sdk/bin:/usr/local/j2sdkee/bin:/home/postgres/bin
$ which ant
/usr/bin/ant
275NAME IS NULL:04/02/18 13:07 ID:tWiWwt8M
CLASSPATHがないんかな?
276NAME IS NULL:04/02/18 22:10 ID:???
javaのバージョンが古いっぽい
277NAME IS NULL:04/02/20 02:16 ID:ZvTh55HA
SELECT A.ID ,A.NAME ,A.AGE ,A.SEX,,B.CORP
FROM ATABLE AS A INNER JOIN BTABLE AS B
ON (A.ID = B..ID)
WHERE A.YEAR = '2004'
AND A.CODE = '1'
ORDER BY A.AGE

こういうSQLがあったとして
取得するデータが
A.ID ,A.NAME ,A.AGE ,A.SEX,,B.CORP
01あいうえ 43男 A
03かきくけ 33男 B
02さしすせ 12女 A

として、このデータをそのままPostgreSQLで各テーブルにInsertするにはどうすればいいのでしょうか?
一つのテーブルならともかく、二つ以上のテーブルが重なってるのがよくわかりません
教えてください
278NAME IS NULL:04/02/20 02:28 ID:???
2つのテーブルから抽出したデータを、
何のためにその2つのテーブルにINSERTするのか。
まずその理由を述べたまい。
279NAME IS NULL:04/02/20 02:50 ID:KwDMmL5N
>>278
意味がないといえばはないけど
とりあえずダブる二つのデータを作成したいです
280NAME IS NULL:04/02/20 04:01 ID:???
2テーブル扱うビューを作ってそれを更新するのに
トリガを使う例がどっかにあったような
281NAME IS NULL:04/02/20 09:28 ID:???
すいません、php4とPostgres使い始めなんですが、
phpから入ってくるデータを、必ずEUCでPostgresに入れるにはどうすればいいのでしょうか?
282280:04/02/20 11:23 ID:???
どなたかplease...
283NAME IS NULL:04/02/20 11:47 ID:???
$Sql = "SELECT * FROM y";
$Sql .= " WHERE ps_id = " . '$id';
$Sql .= " OR flg =" . '1';
$Sql .= " ORDER BY ply_id desc";
$result = pg_Exec($db, $Sql);
$Rows = pg_numrows($result);

コレで&ROWS長さが帰ってきません、SQL文に問題があるんでしょうか
284NAME IS NULL:04/02/20 12:18 ID:???
いったんテキストに出力して、psqlからコピペして
結果を確認してみる
285NAME IS NULL:04/02/20 12:18 ID:???
>>281
php側の文字コードは?
286232:04/02/20 13:01 ID:???
>>280
マンモス本
>>281
mb_convert_encoding($str, 'EUC-JP', 'auto');
287NAME IS NULL:04/02/20 16:53 ID:???
>>283
$Sql の内容を psql に流したら何件でるのさ。
288NAME IS NULL:04/02/20 18:49 ID:???
>>287
すいません、なんとか解決致しました、ありがとう御座います

解決時のコード(さっきとは変数名が少し変わっています)
$szSql = "SELECT * FROM tm_player";
if($in_psid == 99){
$szSql .= " WHERE (ps_id = '$in_psid'";
$szSql .= " OR ps_id = '88')";
}else{
$szSql .= " WHERE ps_id = '$in_psid'";
}
$szSql .= " AND yb_flg = 1 ";
$szSql .= " ORDER BY ply_id desc";
$result = pg_Exec($db, $szSql);
$Rows = pg_numrows($result);
289NAME IS NULL:04/02/20 18:54 ID:???
それで早速なのですが
$arrData = pg_fetch_array($result, 0);
で得られたデータの
$arrData["birthday"]の中身が char(8)なのですが
11111111が入っていた場合1111/11/11のようにHTMLに出力する場合どのようにすればよいのでしょうか

出力ロジックはあるので$arrData["birthday"]の内容をPHP側で編集したいのです
290NAME IS NULL:04/02/20 19:52 ID:???
>>289
誤爆かな?PHP なら WebProg の PHP 板へ。
まぁ、 ttp://jp.php.net/manual/ja/function.substr.php で。
291NAME IS NULL:04/02/20 19:56 ID:WOIPhY1A
現在DBに接続中のセッションを調べ、
特定のセッションを強制切断させる方法を
ご教授下さい。

T-SQL(MSSQL Sybase)だと
sp_whoで調べて kill セッション#

Oracleだと
SELECT SID, SERIAL#,
STATUS, USERNAME, SCHEMANAME, OSUSER,
TERMINAL, MACHINE, PROGRAM, A.NAME
FROM V$SESSION S, AUDIT_ACTIONS A
WHERE S.COMMAND = A.ACTION;
で調べて
ALTER SYSTEM KILL SESSION 'sid,serial#';

です。
292NAME IS NULL:04/02/21 21:52 ID:???
初心者です。質問させて下さい。
PostgreSQLを使えば複数の書き込みが重なることによって
ファイルが壊れる(空になる)ことがなくなるんですか?
293NAME IS NULL:04/02/22 19:06 ID:lkTMtM8E
postgresをpostmaster で起動すると一般ユーザーでもrootでも起動できるのですが。
起動スクリプトで
/etc/rc.d/init.d/postgres start
と起動するとrootでは起動できるのですが一般ユーザーでは起動できません。
must be in tty ...
とエラーがでます。一般ユーザーでログイン後に起動させるにはどうすればいいのでしょうか?
アドバイスよろしくお願いします。
294NAME IS NULL:04/02/22 22:57 ID:???
起動スクリプトはrootしか起動できません。そういうものです。

pg_ctlを調べなさい。
295NAME IS NULL:04/02/22 23:00 ID:???
>>294
なるほど。
でもrootしか起動スクリプトを起動できないなんてなんかもったいないような気がします。

アドバイスありがとうございました。
296NAME IS NULL:04/02/22 23:09 ID:???
ゴールデンレター
このレスを見た人はコピペでもいいので
30分以内に7つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白され、17日後に
あなたに幸せが訪れるでしょう
297NAME IS NULL:04/02/22 23:33 ID:vGCsoKgV
>>295
man sudo
298294:04/02/23 08:59 ID:???
つうか/etc/rc.d/以下の起動スクリプトはデーモン起動用だから、
むやみに誰でも起動できちゃあ危険なんだよ。
DB野郎はモノをしらんな。もう少しUNIXを勉強せい。
UNIXも仕事道具の一つだろ。
299NAME IS NULL:04/02/23 09:40 ID:82dGYiiz
だから、起動スクリプトの中で
sudoを使えばいい。
そんなことは定石だろ?
300NAME IS NULL:04/02/23 10:01 ID:1zYluZIV
>>299が正解。

>>298>>293
>一般ユーザーでログイン後に起動させる
>にはどうすればいいのでしょうか?
一般ユーザが自動起動によりで起動したいと
いっているのに、分かっていないようだ。
301NAME IS NULL:04/02/23 14:17 ID:???
>>300

それは違うような。

> 一般ユーザが自動起動によりで起動したいと
>いっているのに、分かっていないようだ。

とはいっていないはず。なぜなら

> 起動スクリプトで
>/etc/rc.d/init.d/postgres start
>と起動するとrootでは起動できるのですが一般ユーザーでは起動できません。

と"手動"で起動しているから。

/etc/rc.d以下はroot以外使わないのが"正しい"。
一般ユーザが起動したいのなら、起動スクリプト"pg_ctl"を使えばよい。

パーミッションもよく分かってなさそうな素人にsudoを教えるなど論外。
302NAME IS NULL:04/02/23 16:32 ID:???
しかし、、起動ユーザーの問題は残るけどな
ユーザー'postgres' にsuできるのはrootだけって設定にしていると
pg_ctlだけじゃすまない。いったんrootになる必要がある

まあ、postgresをロックしないでパスワード設定すればいいんだけど
303NAME IS NULL:04/02/23 16:41 ID:1zYluZIV
>>301
>/etc/rc.d以下はroot以外使わないのが"正しい"。
そんなことはない。適正なユーザで実行権限を与えるべし。
うちのSolaris(一部)なんかこうだよ。
-rwxr--r-- 5 root sys 911 1月 6日 2000年 syslog
-rwxr-xr-x 1 root sys 119 8月 19日 2003年 tcpserver
-rwxr--r-- 1 root sys 304 1月 6日 2000年 ufs_quota
Linuxでもいっしょ。
別に特定ユーザにそのデーモン実行について全て
を委譲し、実行に問題ないなら(←強調)、
起動スクリプト実行権限はその特定ユーザに
与えても構わない。
但し、起動スクリプトへの書き込み権限は別。
MTA や 鯖系のインストールドキュメント
は余裕で起動スクリプトに対して、
chmod 755(750)出してるよ。

オレが言っているのは、
起動スクリプトをrootで起動させても、
スクリプトの中ではsudo(su -c )を使用し、
特定ユーザでpostgresを実行させろってこと。

ただし、自動起動時はrootで起動されるから
sudo(su -c)などのユーザの変更が必須。
君はsudo(su -c)を教えない、使わせないと言っているが、
じゃあ、君は例えばpostgresを自動起動させる場合、
postgresをroot権限で実行させろというのか?
そっちの方がやべーじゃん。

まとめると、安全な方法は
postgres自体は一般ユーザで起動させる。
起動スクリプト自体はroot権限で実行させる計画なら
rootで実行させ、スクリプトの中のpg_ctl はsudo(su -c )により
特定ユーザ(postgres)にて起動させるってことだ。

あんまり、素人には、とか言うなよ、
誰だって最初は分からないんだから。
こういうことで覚えてけばいいじゃんか。
304NAME IS NULL:04/02/23 16:59 ID:???
起動時にrcスクリプトが実行されるときはroot権限だから、
rcスクリプトの中でsudoするのには何の問題もないけど、
一般ユーザーがsudoするにはパスワード入力が必要だし、
rcスクリプトの中で環境変数(PGDATAなど)を設定している場合も多いから、
起動時に自動実行されることが前提となっているrcスクリプトを
一般ユーザーがそのまま使うのは簡単でない場合が多い。

もちろん、「確率」の問題だから使えることもあるけれど、
そのあたりを切り分けできる程度のスキルがないと、
rcスクリプトの使い回しなんてロクなことにならないと思う。

一般ユーザーでpostgresqlを起動するとはどういうことなのか、
rcスクリプトでは何のためにsudoをしているのか、などが分かってりゃいいが、
分かってない人に「rcスクリプトを一般ユーザで使うには」みたいな
ことを教えてもムダだと思う。正直。

逆に分かってる人なら、「スクリプト」なんて一行ずつ読んできゃ
分からないわけないんだから、自力でなんとかできるだろ。
305303:04/02/23 17:08 ID:1zYluZIV
ごめん
s/postgres自体は一般ユーザで起動させる。
/postgres自体は特定ユーザ(postgres)で起動させる。

起動スクリプトのユーザの使い回しはしていません。
306NAME IS NULL:04/02/23 17:13 ID:???
おまいらが頭良いのは分かったから喧嘩するなよ
307NAME IS NULL:04/02/23 18:08 ID:???
>>303

うざいからここだけ。

> じゃあ、君は例えばpostgresを自動起動させる場合、
>postgresをroot権限で実行させろというのか?

/etc/rc.d/init.d/postgresqlを実行できるのはrootだけだが、
少なくともredhatの/etc/rc.d/init.d/postgresqlは、
内部でsu -l postgres ...
を実行している。つまりユーザpostgresで起動するわけ。
308NAME IS NULL:04/02/23 18:11 ID:???
俺は301=307、304じゃない。念のため。
309NAME IS NULL:04/02/23 21:22 ID:82dGYiiz
>>307-308
別に誰だっていい。
そうやって書かれてあるならそれでいい。できあいのスクリプトなんかしらねーよ。
root以外で起動させたければ起動スクリプトをそのユーザ所有にしとけ。
危険でもなんでもない。
以上
310NAME IS NULL:04/02/23 21:27 ID:???
えっ・・・postgresユーザで動かすのが普通かつ常識じゃなかったのか・・・。
311NAME IS NULL:04/02/23 22:06 ID:WJrjzaRO
おいおい、どういう常識なんだ?
ユーザなんて、自由にかえられるだろ?
postgresのインストールディレクトリ、ファイルの
所有者をpgsqlというユーザに変更したら
pgsqlユーザで動かすじゃないか。

Unix系OSにあらかじめpostgresユーザが作成される
とでも思っているのか?
インストーラのrpmが勝手に作成して設定してるだけだ。
312NAME IS NULL:04/02/23 22:23 ID:???
postgresユーザで動かしてたとして、なにか不都合でもあるのか
313NAME IS NULL:04/02/23 22:32 ID:F7TEU9gy
pg_ctlをuser:postgres以外にも使えるようにすることはできますか?
314300略史:04/02/23 23:21 ID:???
300=303=305=309=311は、300で墓穴掘って以降、
趣旨をずらしながら自己弁護を続けた.....集中放火浴びつつ。
315NAME IS NULL:04/02/23 23:23 ID:WJrjzaRO
>>312
別に不都合ねーよ。実行ユーザ名なんか自由に設定できるってことだ。
>>313
chgrp -R 他に使用したいユーザのグループ postgresインストールディレクトリ
chmod -R 774 postgresインストールディレクトリ

つーかさぁ、ソースからビルド、インストールしたりすれば
OSの使い方とか自然に分かってくることじゃん。
316NAME IS NULL:04/02/23 23:25 ID:???
configure;make;make installじゃあOSなんて理解できねえよ

と燃料投下。
317NAME IS NULL:04/02/23 23:38 ID:WJrjzaRO
違うがな、誰でもいいじゃねーか。
誰がどんなレスしたって知ったこっちゃない。
そんな低レベルな話題でしか煽れないのか?

>>316
暇だから釣られてやるよ。
postgresのビルドに何が必要か調べてみろ
あとそれだけじゃあ、rootでないと起動できないぞ
マルチバイトもjavaもサポートさせないのか(w
318NAME IS NULL:04/02/23 23:46 ID:???
> マルチバイトもjavaもサポートさせないのか(w

さては7.3以降の変化を知らんな(w
319NAME IS NULL:04/02/23 23:57 ID:WJrjzaRO
>>318
dbinit -E EUC_JP
createdb -E EUC_JP
320NAME IS NULL:04/02/24 00:03 ID:???
318のために解説しよう。

7.3以降、configure時に--enable-multibyteを指定せずともマルチバイトコードに
対応するようになったのだ。
initdbもcreatedbも"OS"とは関係ないので注意しよう。
なお、initdb実行時に--no-localeを忘れずに。

ちなみにdbinitじゃなくinitdbだ (w
321NAME IS NULL:04/02/24 00:05 ID:???
壁|-`).。oO(dbinit...)
322NAME IS NULL:04/02/24 00:06 ID:???
> 318のために解説しよう。
しもた、自分にレスしちまった。

> 319のために解説しよう。
のつもりだったのに、はずかしい。
323NAME IS NULL:04/02/24 00:11 ID:???
>>322

余裕でんな。
324NAME IS NULL:04/02/24 00:47 ID:GH2U194d
なんかさあ、言葉のはしはしをつっつくだけじゃん。
べつにコマンド間違えたらお前が突っ込まなくても
OSが突っ込んでくれるよ(w
>initdbもcreatedbも"OS"とは関係ないので注意しよう。
OSからみたらコマンドだろ。postgresインスコディレクトリ/bin
配下にあるだろ。OSから起動させるから関係なくねえじゃん。

まあ、がんばれ。
325NAME IS NULL:04/02/24 01:08 ID:???
> >initdbもcreatedbも"OS"とは関係ないので注意しよう。
> OSからみたらコマンドだろ。

ぷっ
326NAME IS NULL:04/02/24 01:10 ID:GH2U194d
笑うとこか?
327NAME IS NULL:04/02/24 01:15 ID:???
>> OSからみたらコマンドだろ。postgresインスコディレクトリ/bin
>> 配下にあるだろ。OSから起動させるから関係なくねえじゃん。

先生!!
createdbを100回実行したらOSが分かりますか?
dbinitを100回実行したらOSが分かりますか (w
328NAME IS NULL:04/02/24 01:19 ID:???
まあなんだ、
ID:GH2U194dは/etc/rc.d/以下の意味が分かってなかったということで。

329NAME IS NULL:04/02/24 01:21 ID:???
分からんよ。
OSからコントロール
(実行や実行ファイルの削除が)できるから
関係あるといってるだけじゃん。


330NAME IS NULL:04/02/24 01:24 ID:GH2U194d
>>328
あなたのような大先生ほどではありませんが
私が設定した自動起動スクリプトでも問題なくシステムは
回っていますです。
331NAME IS NULL:04/02/24 01:34 ID:GH2U194d
>>327
パスが切ってあるとか、それこそ実行権限の設定だとか
全部じゃないけどOSの話の一部じゃないのか?
環境変数の設定の仕方とかOS(シェル)の話じゃないのか?
332NAME IS NULL:04/02/24 01:35 ID:???
> OSからコントロール
>(実行や実行ファイルの削除が)できるから
> 関係あるといってるだけじゃん。

今、僕はUSBライトで部屋を照らしているのですが、これはOSに関係あるでしょうか?
USBライトはOSを起動しないとライトがつかないのでOSに関係あるように思いますが、
PCの電源と連動しているだけのようにも思えます。
USBライトを研究するとOSのことがわかるようになるかどうか心配です。

なにを勉強すればOSがわかるのでしょうか?やはりinitdbでしょうか。
333NAME IS NULL:04/02/24 01:43 ID:GH2U194d
話曲げてるのお前じゃん(w
ドライバ使って明るさ明るさ変えるやつは
あるんでないの?
そうかもなinitdb調べて見ろよ。
334NAME IS NULL:04/02/24 01:44 ID:GH2U194d
明るさが1コ多かった
335NAME IS NULL:04/02/24 02:00 ID:???
> 私が設定した自動起動スクリプトでも問題なくシステムは
> 回っていますです。

それは運がよいのか、環境がヌルいだけと認識しなさい。
例えていえば、他の車が全く通らない自動車学校のコースをぐるぐるまわって
俺は無事故だといっているようなもの。
もちろんそれで済むならそれでいいが、一般的には危険だ。
何人かsudo関係で注意していたと思うが、
君はそれを聞き入れるだけのレベルには達していないようだ。
336NAME IS NULL:04/02/24 02:04 ID:GH2U194d
sudo や suでrootユーザでなく
一般起動ユーザで起動させて何が危険だ。

危険ということを具体的に言ってくれ
337NAME IS NULL:04/02/24 02:05 ID:???
>>335


>> 環境変数の設定の仕方とかOS(シェル)の話じゃないのか?

OSとシェルの違いすら怪しい厨房の相手なんかすんなよ(w
338NAME IS NULL:04/02/24 02:07 ID:???
>> まあなんだ、
>> ID:GH2U194dは/etc/rc.d/以下の意味が分かってなかったということで。

agree.
339NAME IS NULL:04/02/24 02:10 ID:GH2U194d
もしかして、おれはとんでもない厨房と
話しているのか?
そうでないなら早く、>>336を言えよ。

危険危険って何が危険なんだ?
340NAME IS NULL:04/02/24 02:18 ID:???
> 危険危険って何が危険なんだ?

君の考え方
341NAME IS NULL:04/02/24 02:19 ID:GH2U194d
また、勘違いされるとかなわんから
もう一回書くが
sudo や suにより、rootユーザでなく
特定起動ユーザでデーモンプログラムを
起動させて何が危険だ。?
342NAME IS NULL:04/02/24 02:23 ID:???
>> > 危険危険って何が危険なんだ?
>>
>> 君の考え方

同意。
もうやめて寝れ。
343NAME IS NULL:04/02/24 02:25 ID:???
>> sudo や suにより、rootユーザでなく
>> 特定起動ユーザでデーモンプログラムを
>> 起動させて何が危険だ。?

厨房決定。
344NAME IS NULL:04/02/24 02:29 ID:GH2U194d
ふーん、何だ言えないのか?
言えないのに煽るな。

>>343
厨房はおまえだろ。全部デーモンプログラムを
rootで起動させとけ。
345NAME IS NULL:04/02/24 02:30 ID:???
きっと自分一人しかログインしないマシンを使っているのさ、
だからrootと一般ユーザの区別がいまいち分かっていないのさ。

大人のルールを分からない奴は厨房なのさ。
君子危うきに近寄らずってのを理解できん奴は厨房なのさ。
346NAME IS NULL:04/02/24 02:35 ID:GH2U194d
>>345
ハァ?自分で自分のクビ締めることいってないか?
あっそうか、こいつ等のことをいっているんか。
なら同意。ゴメン
347NAME IS NULL:04/02/24 02:35 ID:???
>> 厨房はおまえだろ。全部デーモンプログラムを
>> rootで起動させとけ。

/etc/rc.d以下の起動スクリプトをrootで起動するのと、
それにより起動させられるデーモンプログラムがrootで起動するか
suで別のユーザ権限で稼働するのかは別問題なんだなあ。

混同してるだろ。起動スクリプトの実行ユーザと、デーモンの所有者について。
348NAME IS NULL:04/02/24 02:40 ID:GH2U194d
何度もいってるだろ
デーモンプログラムをって、
起動スクリプトって言ってないだろーが。

349ID:GH2U194dの母:04/02/24 02:41 ID:???
ID:GH2U194dの母です。postgresqlの有意義な話をすべきスレで、私供の愚息が
スレを浪費してしまいまして、誠に申し訳ありませんでした。

またなにか書き込むでしょうが、皆様、無視するようなにとぞお願い致します。
350NAME IS NULL:04/02/24 02:42 ID:???
> 起動スクリプトって言ってないだろーが。

話の発端はお前の起動スクリプト話だったんだが。都合の悪い話は忘れたか。
351NAME IS NULL:04/02/24 02:45 ID:???
ID:GH2U194d cross fire!
352NAME IS NULL:04/02/24 02:49 ID:GH2U194d
はぁ?
オレは、自動起動時の場合は例え起動スクリプトの
所有者を変更していてもroot権限で起動スクリプトを実行させるから、
適切な起動ユーザにてデーモンプログラムを実行するように
スクリプトを書けって何回もいってるじゃねーか。
353NAME IS NULL:04/02/24 02:52 ID:???
ところで、お前、

>> > マルチバイトもjavaもサポートさせないのか(w

>>320 :NAME IS NULL :04/02/24 00:03 ID:???
>>
>> 7.3以降、configure時に--enable-multibyteを指定せずともマルチバイトコードに
>> 対応するようになったのだ。

--enable-multibyteはスルーだな(w
やっぱ都合悪いことは...

354NAME IS NULL:04/02/24 02:54 ID:???
ID:GH2U194dは自家中毒を起こし始めました。
355NAME IS NULL:04/02/24 02:56 ID:???
このスレは
『ID:GH2U194dの、こちとらrootじゃ!』
になりました。
356NAME IS NULL:04/02/24 02:57 ID:GH2U194d
それは悪かったな。
7.3移行はconfigure付けなくても
マルチバイトはデフォルトでサポート。
すごい重要なことです。勉強になりますた。

それで、オレの意見は考え方が危険とか
具体的なことがないけど。
357NAME IS NULL:04/02/24 02:58 ID:GH2U194d
s/configure付けなくても/ configureオプション付けなくても
358NAME IS NULL:04/02/24 03:02 ID:GH2U194d
悪いもう一つ、s/移行/以降

はやく、>>352の具体的な危険とやらを
教えてクリ。
359NAME IS NULL:04/02/24 07:39 ID:GH2U194d
昨晩はつきあってくれてありがとうございました。

発端は
>つーかさぁ、ソースからビルド、インストールしたりすれば
>OSの使い方とか自然に分かってくることじゃん。
ですかね。
そうですね、これだけではOSの使い方は
全部わかりませんよね。
いろいろ調べたり、オリジナルの設定を行ったり、
慣れ親しんで覚えていくと、知識が広がると
言いたかったのです。

私の意見も勘違いさせるような内容だったりと、
反省していますし、私自身もまだまだ未熟である
と自覚しています。

他の人もちょっと入り込めないようにしてしまった
のでお詫びします。
OracleやDB2のDB鯖を仕事で使っているけど
postgresも使ってみると負けてないですよ。
みなさんもがんばってください。
360NAME IS NULL:04/02/24 10:58 ID:???
で、どこを縦読みするのかね?
361NAME IS NULL:04/02/24 11:15 ID:???
Solarisを触り始めて(Unixをまともに使い出したのはこれが最初)
これのMake,インストール・立ち上げはかなり苦労したなぁ
当時は6.5.xだったが。おかげでいろいろ覚えたよ
362NAME IS NULL:04/02/24 12:46 ID:lGzRYFqg
初めまして、質問なのですが、
timestamp同士の計算結果を分で返すようにしたいのですが、
どうやって戻り値をフォーマットしたらいいのでしょうか?
select age(now(),'2004-02-24 09:50:00');
これを「□時間□分働きました」ってな具合にしたいんです。
よろしくお願いします。
363NAME IS NULL:04/02/24 13:06 ID:???
>>361
禿同。antやzlibやreadlineが無いって怒られて、
これでもか!っていうくらいインストールがこけたよ。
>>359の言っていることも合ってると思うよ。
364304:04/02/24 13:23 ID:???
あ、祭に乗り遅れた・・・。(´・ω・`)
365NAME IS NULL:04/02/24 13:26 ID:???
>>362

Maybe date_trunc().
366 :04/02/26 00:42 ID:FEZ04nhN
リクエストしているSQLの内容をモニタ(ログでも可)するにはどうしたらいいのでそ
シーラカンス本にはdebug_print_queryというログのエントリがあるんですが
それを設定すると
FATAL: unrecognized configuration parameter "debug_print_query"
て怒られます
367NAME IS NULL:04/02/26 00:51 ID:???
7.3以上のものならlog_statement に変わったモナ
368366:04/02/26 01:10 ID:FEZ04nhN
なるへそぉ。ありがとうございます。
さっそく試してみます
369NAME IS NULL:04/02/27 10:31 ID:???
PostgreSQL 7.4.1 での「データ型書式設定関数」
http://www.postgresql.jp/document/pg74doc/html/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE
についてですが、

警告:to_char(interval, text) は廃れたもので、新規に作成するコードでは使用すべきではありません。次のバージョンで削除する予定です。

なんてことが書かれていたのですが、代替手段としてどうすればいいのかご存知の方はいらっしゃいませんか?
現在稼動中のアプリで思いっきり使い倒しているもので・・・
370NAME IS NULL:04/02/27 14:32 ID:???
>>369

工エエェェ(´д`)ェェエエ工工
371NAME IS NULL:04/02/27 15:13 ID:???
へ?to_charって廃れたものなの?

知らなかった。漏れも使い倒してる……orz
372NAME IS NULL:04/02/27 17:47 ID:???
>>370, 371

Only "to_char(interval, text)"
373NAME IS NULL:04/02/28 12:38 ID:???
to_char(interval, text) の代替案は?
374NAME IS NULL:04/02/29 22:54 ID:???
intarvalって判定程度しか使ったことないけど、
代替はdate_partでこつこつとするしかないのかな?
375NAME IS NULL:04/03/01 12:52 ID:???
SELECT * FROM foo WHERE
のあとに、
x = 1

y = 2
の2つを書きたいとしたら、その2つはどうつなげればいいのですか?
376NAME IS NULL:04/03/01 12:57 ID:???
>>375
and とか or
377NAME IS NULL:04/03/01 13:15 ID:???
>>376
SELECT * FROM foo WHERE x = 1 AND y=2
でいいのか、、、
どうもありがとうございます。(初心者丸出しでスマソ)
378NAME IS NULL:04/03/01 16:28 ID:???
何か凄いモンを見た気分。
379NAME IS NULL:04/03/01 17:19 ID:???
380NAME IS NULL:04/03/02 07:09 ID:???
>>378
釣りかと思った。
381NAME IS NULL:04/03/02 11:36 ID:???
こっちもナイス.

805 名前:アキ :04/03/01 17:11 ID:XoJMlHgP
mysqlでtimestampから30日経ったものを書き出したいのですが
下記の書き方だと1日以上経ったものは全て出てしまいます。
なにか良い方法はあるでしょうか?
SELECT * FROM table WHERE (TO_DAYS(NOW())-TO_DAYS(timestamp))
よろしくお願いします。


806 名前:NAME IS NULL :04/03/01 18:03 ID:???
SELECT * FROM table WHERE (TO_DAYS(NOW())-TO_DAYS(timestamp)) > 30


807 名前:アキ :04/03/01 18:07 ID:XoJMlHgP
>>806
どうもありがとうございました!できました。
382NAME IS NULL:04/03/06 23:26 ID:???
他のスレで答えた知ったかが
お礼を言われたので、うれしさのあまり
自慢するスレはここですか(w
383NAME IS NULL:04/03/08 01:39 ID:???
妙にひねくれてますね。ID:XoJMlHgPですか > 382
384NAME IS NULL:04/03/08 02:02 ID:???
ID:XoJMlHgPは普通に感謝してるのになんで捻くれるんだ?
>>383も妙に捻くれてる気がする。
385NAME IS NULL:04/03/08 02:11 ID:???
お前ら、この俺を差し置いてひねくれ談義をするな
真にひねくれているのはこの俺だ!
386NAME IS NULL:04/03/08 02:58 ID:???
じゃあ俺も混ぜろ!
387NAME IS NULL:04/03/08 08:50 ID:???
pupupu...

>>383-386
ジエン厨ばかりだな
こんな閑散板・スレで
一気にカキコがあるわけないだろ。
388NAME IS NULL:04/03/08 10:41 ID:???
>>387
妙にひねくれてますね。>>382ですか
389NAME IS NULL:04/03/08 11:14 ID:???
>>388
>>383-386ですか?
またすぐに文体かえて俺だ!と
カキコしますか?(フラ
390NAME IS NULL:04/03/08 11:33 ID:???
>>389
妙にひねくれてますね。>>382=>>387ですか
391386=388=390:04/03/08 11:34 ID:???
ところで"(フラ"ってのはどういう状況だ?
392NAME IS NULL:04/03/08 12:13 ID:???
ジエン厨をからかうと
・すぐに相手を特定したがる
・名前に386=388=390
てな感じでこの中の一部はオレだよという。

必死なのが面白すぎてハライテー
じゃあそろそろ>>383-385のお出ましですか?
フラワラフラフラワラ

実は全部自演王国だったりして

393NAME IS NULL:04/03/08 12:24 ID:???
お前ら暇でさみしいやつらだな。
煽りはスルーすれよ、釣られるなよ。
釣るのも厨、釣られるのも厨。
あっオレは本当にこいつらじゃないよ
今、昼休みに覗いただけ。あんまり言うと
オレもジエンなんて言われそうだな。
394NAME IS NULL:04/03/08 13:23 ID:???
>>392
妙にひねくれてますね。>>382=>>387=>389ですか
395NAME IS NULL:04/03/08 13:44 ID:???
>>394
そーでーす!
といったらどうすんの?
>>391=394ですか?ジエンちゃん
それとも俺は>>383-385とでもいうのですか?
ホントオモシレーナ

妙に捻くれてますね。
396NAME IS NULL:04/03/08 13:54 ID:???
っで
>>381の>806=>>381=>>383-386
でいい?
397ジエンです:04/03/08 13:55 ID:???
いいよ
398ジエンです:04/03/08 13:56 ID:???
捻くれてますね
399NAME IS NULL:04/03/08 14:04 ID:???
>>396
806って何?
400NAME IS NULL:04/03/08 20:52 ID:???
すみません。質問していいでしょうか?

現在int 型のデータがあるのですが int8 に属性変更したいのですがどうすればいいでしょうか?

int型に格納されているデータを保持しつつint8型に移行したいのですが・・・
401ジエンです:04/03/08 21:34 ID:???
>>400
対象テーブルがtable1とすると、
1.対象テーブル名を変更 table1→table1_old
2.新しいカラム仕様のテーブルを対象テーブル名で作成。
 table1を作成 (対象カラムがint8のカラム、残りのカラムはtable1_oldと同じ)
3.insert 対象テーブル名 select * from 名前を変更した元のテーブル
 insert table1 select * from table1_old
残ったtable1_oldは好きなようにしてくれ。

int→int8なら問題ないが、
3.で型変換が必要なカラムに関しては
select メンバのにおいて、
型変換の関数で型変換を行う。
もちろん、文字型の場合のレングスを縮める
にはぶった切ることが必要。

これは汎用的な方法。どのDBMSにもいえる。
402ジエンです:04/03/08 21:49 ID:???
insert into 〜 だったな
403NAME IS NULL:04/03/10 13:33 ID:???
暗号化した文字列をvarcharの項目に挿入しようとすると
「Invalid EUC_JP character sequence found」
という形で怒られてしまいます(DBの文字セットをEUC_JPにしてます)。

この文字列を格納する場合は、char,varchar以外のデータ型でないといけないでしょうか?
404NAME IS NULL:04/03/10 13:45 ID:???
>>403
どのように暗号化したんかわからんけど。
バイナリになってんならbytea型にいれれば。
405NAME IS NULL:04/03/10 14:05 ID:???
>>404
ありがとうございます。
暗号化と言っても文字単位でビット反転させてるだけの貧弱なものです。
byteaを試してみます。
406NAME IS NULL:04/03/11 18:46 ID:i6CB+NDS
postgres で過去24時間の時間表示って出来ないですか?

hoge=> SELECT hoge;
fuga
---------------------
2004-03-10 19:00:00
2004-03-10 20:00:00
2004-03-10 21:00:00
2004-03-10 22:00:00
2004-03-10 23:00:00
2004-03-11 00:00:00
2004-03-11 01:00:00
2004-03-11 02:00:00
2004-03-11 03:00:00
2004-03-11 04:00:00
2004-03-11 05:00:00
2004-03-11 06:00:00
2004-03-11 07:00:00
2004-03-11 08:00:00
2004-03-11 09:00:00
2004-03-11 10:00:00
2004-03-11 11:00:00
2004-03-11 12:00:00
2004-03-11 13:00:00
2004-03-11 14:00:00
2004-03-11 15:00:00
2004-03-11 16:00:00
2004-03-11 17:00:00
2004-03-11 18:00:00
(24 row)
みたいな感じに表示できるhogeって無いですか??
407NAME IS NULL:04/03/11 18:50 ID:???
>> 406
できる。そういう関数を作れば。
408NAME IS NULL:04/03/11 18:53 ID:???
>>406
DB板が出来る前だっけか、以前にもあったな。
たしか乱数を必要数欲しいってのが。
409NAME IS NULL:04/03/13 20:53 ID:V9ijufwP
ECPGの質問です。
ProCの代わりの開発環境にと思い、RedHat9にインストールしてみました。
簡単なDBを構築し、ローカルで接続するだけのCプログラムを作成しました。
で、プリコンパイル、コンパイル、リンクが滞りなく終わったので
実行させると、libecpg.so.4にリンクできないというメッセージがでます。
バージョンは7.4.2です。
RedHatのパッケージは使わず、/usr/local/pgsqlにgmakeしています。
tcp/ipごしにもアクセスできるし、インストールに問題はないと思うのですが・・・。
410409:04/03/13 22:28 ID:???
自己レスです。
共通ライブラリが登録されていなかったのが原因でした。

etc/ld.so.confに/usr/local/pgsql/libを記述して、
sbin/ldconfig -v
を打ったら実行したら動くようになりました。
Linuxではこのようにライブラリを登録するのですね。
411NAME IS NULL:04/03/13 22:34 ID:???
はじめまして

postgresqlのことは、ここに聞けということで
質問いたします。

あるファイル(テキストファイル)を読みこんでDBにデータを登録したいと思います。
つまり、バッチ的な処理なのです。
(インターフェース的にはブラウザでファイルをアップロードさせて処理する)
これを、ファイル読み込みからDB登録までストアドで行いたいと
思います。(速度重視の為)
で質問ですが、ストアドでそんなことできるのでしょうか?
ファイル読み込みとかの処理が。。。
ストアドはpl/pgsqlでできればうれしいのですが。。。
Cでストアドを作成すればいいのでしょうか?
以上、よろしくご教授ください。

バージョン:7.4.1
412NAME IS NULL:04/03/14 20:51 ID:???
>>411
plpgsqlから COPY コマンド使えばできるけど。
まあそれならplpgsql使わなくてもいっしょだけどね。
413NAME IS NULL:04/03/14 21:44 ID:???
>>412
> >>411
> plpgsqlから COPY コマンド使えばできるけど。
> まあそれならplpgsql使わなくてもいっしょだけどね。
ありがとうございます。、
なるほど、COPYコマンドですか。。
それってあのpostgresqlのcopyコマンドですよね?
psqlで入ってpsqlのコマンドプロンプトから実行するやつの。
それって、ストアドでも動かせるものなのでしょうか・・・
普通のSQLのselect文みたいに・・・・

あっ!でも、そうか、select文と同じレベルであれば
ストアドにする必要もないのか?!


でも仕様で、1つのCSVファイルの1レコードで複数の
テーブルを更新する必要もあるかもしれないのです。
となると、COPYコマンドではできないということになるのですよね?

質問ばかりですいません。
414NAME IS NULL:04/03/15 00:55 ID:EkYcJnVb
すいません教えてください
A B
− −
10 2
22 3
11 4
19 1

というテーブルがあった時
AとBを乗算してその結果に対して順位をつけたいとき
どうすればいいのでしょうか?
つまり
A B C
− −−
10 2 3(20)
22 3 1(66)
11 4 2(44)
19 1 4(19)
という風に順位をつけたいのですが
どうすればいいのでしょうか
教えてください
415NAME IS NULL:04/03/15 07:58 ID:???
>>414
SELECT a,b,(SELECT COUNT(*) FROM hoge AS foo WHERE foo.a*foo.b >= bar.a*bar.b)AS c FROM hoge AS bar;

頻繁に使用するならSQLよりも、a*bのカラムで並び替えしてSQL文を発行する
プログラム側で番付した方が速いんじゃない?
416NAME IS NULL:04/03/17 16:35 ID:???
>>413
なにやりたいのかわからんが、phpなら
http://www.php.net/manual/ja/function.pg-put-line.php
みてみれば?
417NAME IS NULL:04/03/18 15:45 ID:???
Cygwin環境が壊れたぁ〜ε=ε=ε=ε=ε=( T)/
418NAME IS NULL:04/03/18 16:19 ID:???
正確には、cygwin内、postgresが死んだ、だな
何でpostmaster 起動しなくなったんだろ
なぞだ、昨日まで動いてたのに・・・ガ━━Σ(゚Д゚;)━━ン!
419NAME IS NULL:04/03/18 23:01 ID:???
すまそん、
date型で、
2000-xx-xx
2001-xx-xx
2002-xx-xx
2003-xx-xx
2004-xx-xx
とデータがあるんですが、
たとえば、2003年のデータだけをSELECT文で抽出するには、
どうしたら、良いんですかね?
420NAME IS NULL:04/03/18 23:29 ID:???
>>419
WHERE date_part('year',column)='2003'
421NAME IS NULL:04/03/20 20:45 ID:x6JQSuBa
なんて読むの?
ぽすたぐれえすきゅーえる。
422NAME IS NULL:04/03/20 22:03 ID:???
423NAME IS NULL:04/03/21 10:09 ID:mik+BDX1
Host A(192.168.0.101)にあるPostgreSQL-Aに自作のアプリでinsertしたデータと同じデータを
ネットワーク経由でHost B(192.168.0.102)上のPostgreSQL-B
にも書き込みたい。
一番いい方法は、アプリ側で、PQconnect(192.168.0.102,"",XX,YY)として、ネットワーク接続するのがいいのでしょうか?
(アプリとはC言語で自作したものです)
424NAME IS NULL:04/03/24 12:25 ID:gWYY//Hx
WindowsXPでPostgresを動かそうとして行き詰ってます。。。

cygrunsrv --install postmaster --disp 'Cygwin PostgreSQL' --path \
/usr/local/pgsql/bin/postmaster --args "-D /usr/local/pgsql/data -i" --dep ipc-daemon2 \
--termsig INT --user 'postgres' --shutdown

で登録したサービスを開始しようと

cygrunsrv -S postmaster

とすると

cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062:
そのサービスを開始できませんでした。

というエラーになります。
ユーザ「postgres」で
postmaster -D /usr/local/pgsql/data
とすると開始され、接続(psqlなど)もできます。

この問題の解決方法をご存知のかたいらっしゃいませんか?
425424:04/03/24 12:48 ID:???
自己レスです
/var/log/postmaster.logを削除したら開始できました
1週間以上はまってしまった。。。
失礼しました
426NAME IS NULL:04/03/24 13:44 ID:Sjs49UlX
PGCluster使っている人っている?使ってみたらスピードが5分の1くらいなった。
427NAME IS NULL:04/03/30 12:33 ID:sc8OhhFH
PostgresSQLでDBサーバー構築を考えているんですが、バージョンの選択で
悩んでいます。7.3系と7.4系のどちらのほうが安定してつかえるでしょうか。
また、JDBCで接続した場合、どちらも日本語に関しては問題なく使えるでしょうか?
428NAME IS NULL:04/03/30 14:23 ID:???
Cygwin+PostgreSQLを試そうとしている初心者です。
Windows2000でcygwin最新をインストールして、↓
Package Version
cygipc 2.03-2
cygwin 1.5.9-1

ipc-daemon2をバックグラウンドで走らせ、ipcsを実行すると
以下のようになるのですが、これってうまくいってませんよね?
$ ipcs

---------- Shared Memory Segments --------
shmid key bytes nattch status

---------- Semaphore Arrays --------
semid nsems key

---------- Message Queues --------
msqid used-bytes messages

どうすればうまく共有メモリの設定?ができるのでしょうか?
429NAME IS NULL:04/04/01 20:48 ID:rsKETXs8
初心者です。
Tableを作成してユニーク番号を付けようと思っているのですが、
SequenceとSerialの違いはなんでつか?
430NAME IS NULL:04/04/01 21:03 ID:???
>>429
sequenceは自動連番生成器という感じかな。
create sequence 文で定義する。
serial(型)はsequenceをデフォルト値とする型なんで、
create table 文でカラムにserial型をしているすると、
sequenceを作って、それをデフォルトとして定義してくれる。
431NAME IS NULL:04/04/02 09:06 ID:njItBrYz
>>430
説明ありがとうございます。
じゃあcreate sequence 文で定義しても、データ型をserialにしないと
連番を生成することはないんですかね?
432NAME IS NULL:04/04/02 10:17 ID:???
>>431
ちったマニュアル嫁よ。
create sequence seq;
と定義した場合。
select nextcval('seq');
で連番は取れる。
433NAME IS NULL:04/04/02 10:20 ID:???
typoしてた。
× select nextcval('seq');
○ select nextval('seq');
434NAME IS NULL:04/04/02 11:17 ID:soHeYQpF
トランザクション中はテーブル全体にロックがかかるんですか?
435NAME IS NULL:04/04/02 12:03 ID:???
>>434
いいえ
436NAME IS NULL:04/04/02 14:45 ID:???
なんでFirebirdスレでも同じ事聞いてるの?
437NAME IS NULL:04/04/07 13:32 ID:???
$ cat file.sql
createdb t3
$ sh file.sql

したところ、file.sql の改行コードが CRLF だったため、

$ psql -l
List of databases
Name | Owner | Encoding
-----------+-------+----------
t1 | user | EUC_JP
t2 | user | EUC_JP
| user | EUC_JP
template0 | master | EUC_JP
template1 | master | EUC_JP
(5 rows)

となってしまいました。
この t3 を dropdb するにはどうしたらいいでしょうか?
438NAME IS NULL:04/04/08 12:17 ID:???
>>437
別ポート、別データディレクトリでinitdbして

pg_dump -C t1 | psql -d template1 -p 新ポート
pg_dump -C t2 | psql -d template1 -p 新ポート

で別に作ってから、データディレクトリ変更が簡単でいいのでは
一瞬でも止められないなら無理だが
439437:04/04/08 13:12 ID:???
>>438
アイディアありがとうございます。ちょっと怖いですね…。
440438:04/04/08 14:56 ID:???
推奨されるかわからんが、漏れはこうやって消したことはある

&psql tempate1
template1=# update pg_database set datname = 't2' where datname='t3';
template1=# \q
&dropdb t2

具体的に書いてみたが、要はpg_databaseのDB名を変更して、dropdbするだけ
今もサービスで問題なく動いてるぞ(まぁ自己責任で
441437:04/04/08 15:37 ID:???
>>440
コマンドラインから cretedb t3 としたら

$ psql -l
List of databases
Name | Owner | Encoding
-----------+-------+----------
t1 | user | EUC_JP
t2 | user | EUC_JP
t3 | user | EUC_JP
| user | EUC_JP
template0 | master | EUC_JP
template1 | master | EUC_JP
(6 rows)

となりました…。

template1=# select datname pg_database order by datname;
t1
t2
t3
t3

しかし、

template1=# select datname pg_database where datname = 't3';
datname
---------
t3
(1 row)

むむむ…。
442NAME IS NULL:04/04/08 15:40 ID:???
それは同じように改行コードがCRLFの
dropdb t3
というファイルを作って
$ sh file.sql
するだけの話なんじゃないか、、、?
443438:04/04/08 15:42 ID:???
select datname pg_database where datname like '%t3%'

だとどんな結果が返ってくる?
444438:04/04/08 15:57 ID:???
すまん。。難しく考えすぎてた
>>442
の方法でやるのが一番だ(一応責任感じてテストしてみたが、問題なし)
445437:04/04/08 16:44 ID:???
>>442
おー、その通りでした。
ちゃんと消すことができました。ありがとうございました。

>>438
いろいろとお付き合いいただきありがとうございました。
# ちなみに 443 は 2 件返ってきました。

逆もまた真なり、でしたね。
446NAME IS NULL:04/04/10 02:55 ID:6SXrOSQg
ラージオブジェクトって複数作れないですか?
テーブルのように
447NAME IS NULL:04/04/10 07:39 ID:EVOnXvq0
昨日、秋葉原のトライタワーで
怒首領蜂大往生の19.8億が達成されました
448NAME IS NULL:04/04/27 13:34 ID:uNy9hB+w
PHP+PostgreSQLでシステム構築を行っています。

ブラウザ(PHP)から、処理が非常に重いSELECT文を実行したあと、
処理時間に待ちきれずユーザが停止ボタンを押したとします。
そうすると、PostgreSQLのプロセスが終わらず30分くらい残ってしまいます。

SELECT文のタイムアウト時間を指定することってできますか?
449NAME IS NULL:04/04/27 14:16 ID:???
>>448 できます。
450NAME IS NULL:04/04/27 14:59 ID:uNy9hB+w
>>448
恐れ入りますがやりかたを教えていただけますでしょうか?
やはりpostgresql.confで設定するのでしょうか?
451450:04/04/27 15:00 ID:???
間違えました

× >>448
>>449
452NAME IS NULL:04/04/27 15:07 ID:???
statement_timeout かな。SQLでも設定できるよ。
453448:04/04/27 17:35 ID:???
>>452
ありがとうございます。
でもstatement_timeout はバージョン7.3からの対応みたいです。
使用バージョンは7.2.3なのです。。。
SQLでの設定の仕方というのも教えていただけますか?
454NAME IS NULL:04/04/27 18:50 ID:???
>>453
いや、postgresql.confを弄るんじゃなくてSQLでstatement_timeoutを設定できるよってことだ。
455Cygwin:04/04/27 20:43 ID:fES63bVJ
今度、とある自治体に導入するWebアプリを開発しています。
そろそろ納期であせっています。

OSは、Windows Server 2003
Apache+PHP
PostgreSQLをCygwinで動かします。

同時アクセスは、80クライアントくらいを想定しています。

PostgreSQLをCygwinで動かすのは、本も出ているくらいなので、
結構実績があるとは思うのですが、それをWindows Server 2003
で動かすのは、ちょっと不安です。
Windows Server 2003 というのは、先方様の要望なので、
守らないといけません。

経験のある方は、アドバイスいただけるとありがたいです。
456NAME IS NULL:04/04/27 21:27 ID:???
人柱だな。
457NAME IS NULL:04/04/27 21:29 ID:???
間違いない。
458NAME IS NULL:04/04/27 21:56 ID:???
調べもせずに導入するなんてアフォだな。
459NAME IS NULL:04/04/27 23:29 ID:GmnkUrwA
2chのサーバー運営者、夜勤こと中尾嘉宏。
サーバー屋の株式会社ゼロの社長。
「bbspink」「pink-TV」などアダルト関係のサイトの運営者。
出資法違反の前科あり(1997.05.06 共同通信記事に記載)
その他、■児童買春斡旋■、pnik-tvのログ販売などの前科あり。
怪しい( ̄ー ̄)限りなく怪しい( ̄ー ̄)
某宗教団体や某ねずみ講マルチと同じくらい怪しい( ̄ー ̄)
充分に怪しいホモっ子よりも更に数倍プロ級に怪しい( ̄ー ̄)
んで既に「北」のように怪しいタコCHと怪しい出資法違反な鯖屋の
素晴らしい組み合わせ。完璧です。120%です。精子が通り抜ける隙間も
無い完璧さです。もう誰も文句は言えません。敵はいないのです。
そのまま突き進んで空中爆発しちまいましょうヽ(´ー`)ノ
http://jbbs.shitaraba.com/computer/2095/
http://blog.livedoor.jp/hirox1492/archives/398543.html
460NAME IS NULL:04/04/30 01:17 ID:???
Webで拾ったServletで作られたWebアプリを展開しようと
思い、同梱のshを実行したらエラーが出ました。
直前に、
pg_ctl -m i stop で停止して、
pg_ctl start で起動させました。
やりなおす前は何もエラーなく実行できたshなんですが、
何か変わってしまったのでしょうか??ポート5432が開いてない
ってエラーっぽいのですが、pg_ctlで起動させたのに
違うポートで起動しているのでしょうか。。。。(?)
psql: could not connect to server: Connection refused
Is the server running on host localhost and accepting
TCP/IP connections on port 5432?


psの実行結果です。
$ ps -ax | grep postgres
11086 std S 0:00.00 postgres: stats buffer process
11088 std S 0:00.00 postgres: stats collector process
11471 std R+ 0:00.00 grep postgres

よろしくお願いします
461460:04/04/30 01:28 ID:???
自己解決しました。

data/postgresql.conf
の中のtcpip_socketのコメントアウトを
外し、trueにしたらいけました

ありがとうございました>漏れ
462NAME IS NULL:04/04/30 02:48 ID:iNONXmpV
DELETE、又は UPDATE した時、
削除、又は更新された古いレコードを表示させるには、
どうすれば良いですか?
463NAME IS NULL:04/04/30 10:39 ID:???
初心者にいい本ってどんなのがありますか?
464NAME IS NULL:04/04/30 10:48 ID:???
その前にselectしとく
465462:04/04/30 11:27 ID:iNONXmpV
>>462
>>464
言葉足らずでした。
誤って DELETE してしまった時、
ファイルに残っているデータを表示させたいのです。
466NAME IS NULL:04/04/30 11:42 ID:+krH8wxm
cygwinの話だけど、
導入時、initdb実行すると

cygcygipc-2.dllがないといわれるんだけど。。。

そんなファイルない罠。

cygipcもpostgreSQLにも入ってない。。
467NAME IS NULL:04/04/30 11:58 ID:???
>>465
ロールバックしろ馬鹿
ていうかファイルって何だ。
468462:04/04/30 12:23 ID:iNONXmpV
>>462, >>464, >>465, >>467
何度もすみません、(釣られてますか?
誤って DELETE してしまった後に、
$PGDATA/base 内のファイルを解析して、
削除済みのデータを表示する様なプログラムは、
どこかに無いものでしょうか?
という感じです。
469NAME IS NULL:04/04/30 12:48 ID:???
だから、誤って DELETE したら rollback しろ。
470462:04/04/30 12:58 ID:iNONXmpV
>>462, >>464, >>465, >>467, >>468, >>469
DELETE の後に、COMMIT されています。
ただし、VACUUM は、まだです。

今日の昼食は、うどんでした。
471NAME IS NULL:04/04/30 13:16 ID:???
PITRが実装されたら復旧させることは(簡単に)可能になるのかな。
472NAME IS NULL:04/04/30 13:20 ID:???
>>470
> DELETE の後に、COMMIT されています。
ここに問題があるので、ぐだぐだ言うな。
473NAME IS NULL:04/04/30 15:55 ID:???
>>470
確かにVACUUMがまだなら戻せそうな気がするねぇ。
やり方は知りません。ごめんなさい。

今日の昼食はから揚げ定食でした。
474NAME IS NULL:04/04/30 19:27 ID:uFFxOZ+Z
PostgreSQLとMySQLは共存出来ますか?
475463:04/04/30 20:15 ID:???
WebサーバとかPHPを使いつつ学んでいくつもりですが、
どの本がお勧めですか?立ち読みしたけど、どれもいまいちだったので。。
476NAME IS NULL:04/04/30 20:35 ID:???
>475
本が無ければ身につかないくらいなら、最初からやめとけ
色んなWebサイトで初心者向けの内容も見つかるし
最初は今ある環境で試行錯誤して、少し分かってきて
本格的に何かやってみようと思ったときに、必要な本を買えばいい
477NAME IS NULL:04/04/30 21:04 ID:kwdBew79
PostgreSQLの7.4.1を使ってるんですケド、
DBのバックアップでシステムカタログとか
テーブルのOID(-o を付ける)とかも含めて
バックアップする利点みたいなのってあるん
でしょうか?

あと、ラージオブジェクトとか使ってるんです
けど、pg_restoreで -dを指定しないと上手く
リストアしてくれないのってナンデDETH?
478NAME IS NULL:04/05/01 01:56 ID:???
>>471
バックアップを残していればな。
479NAME IS NULL:04/05/01 16:08 ID:???
>>476
キミは身についているのかい?ぷ
480NAME IS NULL:04/05/02 00:11 ID:???
ご教授願います。

現在、サーブレットを開発しているのですが、時々
DB接続時に,connectでエラーが発生します。(JDBCのエラーです)

内容的には、

javax.servlet.ServletException: Something unusual has occured to cause the
driver to fail. Please report this exception: Exception: java.lang.IllegalArgumentException
Stack Trace:

java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:218)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:575)
at java.lang.StringCoding$CharsetSD.decode(StringCoding.java:186)
at java.lang.StringCoding.decode(StringCoding.java:224)
at java.lang.StringCoding.decode(StringCoding.java:230)
at java.lang.String.(String.java:371)
at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:226)
at org.postgresql.Driver.connect(Driver.java:122)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
:::::::::::::::::::::(以下省略)::::::::::::::::::::::

のような感じです。
しかし、毎回起こるのではなく、時々起こるので原因の切り分けができてません。

ちなみに同様のことが以下にも出ています。
ttp://www.jajakarta.org/kvasir/bbs/technical/494?msg=2#msg1757

なにか情報お持ちの方いらっしゃいませんでしょうか?
以上、よろしくお願いします。

<環境>
 Postgresql:V7.4.2
 JAVA:1.4.2_04
481NAME IS NULL:04/05/02 13:11 ID:???
>>477
意味ワカラン。
-oするメリットはあんたの設計したDBがOIDに依存するかによる。
pg_restoreに-dが必要なのはアタリマエ。
482NAME IS NULL:04/05/02 21:45 ID:3RQME9l/
>> 481
pg_restoreに-d使わないとダメなのはナゼ?
別に当たり前だとは思わないが。

http://www.postgresql.jp/document/pg732doc/reference/app-pgrestore.html
引用:
pg_restore の操作には 2 つのモードがあります。
データベース名が指定された場合は、そのアーカイブは直接指定したデータベースにリストアされます。
さもなくば、データベースを再構築するために必要となる SQL コマンドを内容とするスクリプトが作成され
(ファイルもしくは標準出力に書き出され) ます。
この内容は、pg_dump のプレインテキスト形式の出力に似ています。
従ってこのスクリプトの出力を制御するオプションのいくつかは pg_dump のオプションに類似しています。
483NAME IS NULL:04/05/02 22:17 ID:???
>>482
ラージオブジェクトはバイナリデータをそのままそのまま入れるからだろ。
484481:04/05/03 10:45 ID:???
・-d付ける = リストアされる
・-d付けない = SQLをファイルか標準出力に出力(リストアはされない)
・477曰  「けど、pg_restoreで -dを指定しないと上手く
  リストアしてくれないのってナンデDETH?」

>>482
何が疑問?
485NAME IS NULL:04/05/03 21:51 ID:???
timestamp 型って
2004-05-05 10:10:00.000000 みたいに 秒以下まで入るんだけど
これが入らない型ってある?

データベースから取り出して使うときにうざいんです。こんな細かい精度は必要ないんで。
486NAME IS NULL:04/05/03 21:56 ID:???
そんなもんフォーマット次第でどうにでもなるだろうがこの無能
お前は一生text型だけ使ってろ
487NAME IS NULL:04/05/03 22:06 ID:???
>>485
timestamp(0)
488NAME IS NULL:04/05/03 22:20 ID:???
>>486
あるかないか聞いてみただけなのにそんなムキになるなよ
489NAME IS NULL:04/05/03 22:36 ID:???
>>488
そもそも型関係ないって話だろう
490NAME IS NULL:04/05/04 11:44 ID:jR8ayW8M
CygwinにPostgreSQLをインストールして「initdb」コマンドを打ったところ
以下のエラーがでました。対処法が全然わかりません。。


Administrator@windows2000 ~
$ initdb -E EUC_JP
The files belonging to this database system will be owned by user "Administrator
".
This user must also own the server process.

The database cluster will be initialized with locale C.

initdb: The directory /usr/local/pgsql/data exists but is not empty.
If you want to create a new database system, either remove or empty
the directory /usr/local/pgsql/data or run initdb with
an argument other than /usr/local/pgsql/data.
[1]+ Done ipc-daemon

どうすればいいんですかね。。誰か分かる人は教えてください
491490:04/05/04 12:04 ID:jR8ayW8M
ちなみに「pg_ctl start」コマンドを打つと以下のようになります。


Administrator@windows2000 ~
$ pg_ctl start
pg_ctl: Another postmaster may be running. Trying to start postmaster anyway.
FATAL: File /usr/local/pgsql/data/PG_VERSION is missing. This is not a valid da
ta directory.
pg_ctl: cannot start postmaster
Examine the log output.
492490:04/05/04 12:09 ID:jR8ayW8M
だれか、教えて♥
493490:04/05/04 12:17 ID:jR8ayW8M
なかなか、回答が返ってきそうもないので、他サイトにも聞いてしまいました。
マルチポストですが、ゆるしてくだしゃい。

両方とも随時覗いていますので、分かる人は返事書いてください。よろしくお願いします。
494NAME IS NULL:04/05/04 12:27 ID:???
 あーっとここで板住人全員が>>490をスルー!!!
        r'::::::::i
         トーf/__
      /  イ| 、ヽ
      //_〉 l_l i_ノ、
\\ (_ニノ 〉____〉〉 〉
      /    } /             ,_-‐、
     /\/,ー 'ヾ          i"_Y 〈i
     〈  < /              ゝ^-'"
     \i"ヽ、  \\     //
     ├ i\i カ      ,、
495NAME IS NULL:04/05/04 12:33 ID:RkWi75TY
>>484
なるほど。理解できましたサンクス。
496490:04/05/04 12:41 ID:jR8ayW8M
そんなこといわず教えてくださいよ〜。今から、本屋言ってしらべてきます。
497NAME IS NULL:04/05/04 17:32 ID:RkWi75TY
・Administrator以外のユーザでinitdbやってみて
・ipc-demonのバージョンあってる?
 以下のファイル読んでみて。(バージョンは自分のにあわせて)
 /usr/share/doc/Cygwin/postgresql-7.4.1.README
・以下のサイトを見ながらやって
 http://discypus.jp/pukiwiki/pukiwiki.php?Cygwin%2FPostgreSQL
498490:04/05/04 18:10 ID:9HDvEtuY
>>497
どうもありがとうございます。
ipc-daemonとかPostgreSQLとかCygwinは、書籍のCD−ROMのものを
そのまま使ったので、大丈夫だと思います。ちなみに、OSのバージョンも
書籍のとまったく同じでした(Windows2000SP3)

もう一度、Cygwinを最初から入れなおしてそれでもだめだったら、参考サイト
のをやってみたいと思います。

それで、完全にできるとおもいます。

大変感謝しています。pukiwikiなんていうサイト全然知りませんでした。
こんなにいいサイトがあるんですね。

本当に感謝しています。どうもありがとうございました。
499490:04/05/04 23:55 ID:a+AlgonX
一度Cygwinを全部uninstallして、フォルダも全部消去して、書籍の通りやりなおしたら、できました。

再起動をなんども繰り返しながら、丁寧に1つずつ作業をこなしたら、問題なく動作するようになりました。

なにが、悪いのかは分かりませんが。。

本当にどうもありがとうございました。色々な本やサイトを見て勉強になりました。
500NAME IS NULL:04/05/06 20:59 ID:Zxg8RjCW
Solaris9 + Posgre 7.4.2でtestというEUC_JPのDBを作りました。
そのあとhogeというテーブルをつくり、insert文を入力すると、
test # insert into hoge values('APPLE','りんご');
では正常にinsertされるが、
test # insert into hoge values('ORANGE','みかん');
とすると、次のプロンプトが

test'#

となってしまう(SQLがまだ途中だというプロンプト)。

どうやら、文字の最後が'ん'だうまくエンコードされていない
みたいなんだけど同じような経験をして解決した人っています?
(あとposge 7.4でも同じ現象です)
501500:04/05/07 19:38 ID:HqD8igVp
事故レスです。
.inputrcというファイルをつくり
以下の3行を記述をすれば直りました。

set convert-meta off
set meta-flag on
set output-meta on

しかし、人すくね。
502NAME IS NULL:04/05/08 00:28 ID:RCkpyBUa
PostgreSQLを使っているサーバの管理を任されたのですが、プロセスを見るといきなり暴走してますた。
hoge$ ps -ax | grep postgres
~
88743 ?? R 8131:51.08 postmaster: postgres hoge [local] VACUUM (postgres)
~
たぶんDBが壊れてるのだとは思いますが、こいつを何とかしないと処理が重くて耐えられません。
VACUUMしてるときって殺してもいいんでしょうか?
#DB鯖は初めてなもんでアホみたいな質問だとは思いますがよろしくお願いします。
503NAME IS NULL:04/05/08 03:53 ID:TPloDnuD
PostgreSQL(に限らないのですが)、3次元配列をDBに入れたいです。
どういうテーブル構造にすればいいでしょうか。
具体的には、int hoge[1024][1024][1024];
くらいの配列です。
504NAME IS NULL:04/05/08 07:36 ID:???
>>503
どのように利用(抽出/検索)するかによる。
505503:04/05/08 08:00 ID:???
>>504 単純に、hoge[1][2][3]がさす内容を得たいのです。
色々考えたのですが、1024*1024*1024 の一次元のレコードを
つくらなきゃいかんのでしょうか。
506NAME IS NULL:04/05/08 08:21 ID:???
三次元だったらこれでいいだろ、ふつう。
create table hoge (
 x int,
 y int,
 z int,

 val int,

 primary key(x,y,z)
);
507503:04/05/08 08:27 ID:???
>>506 それだと1点しか保持できないのですが。。
508NAME IS NULL:04/05/08 08:34 ID:???
>>507
よく考えれ、>>506でいい。
509503:04/05/08 08:39 ID:???
>>508 あ!目から鱗がこぼれました。
ありがとうございました。
510NAME IS NULL:04/05/08 09:14 ID:???
pg_ctl -m f stop で強制終了しようと思ったが、
エラーが出たので、
/usr/local/pgsql/data/postmaster.pid
を削除し、
pg_ctl -w start
したらエラーが出る。
StreamServerPort: bind() failed: Address already in use
Is another postmaster already running on port 5432?
If not, wait a few seconds and retry.
/usr/local/bin/postmaster: cannot create INET stream port
............................................................failed

psコマンドで調べるとまだプロセスが生きている(??)
killコマンドを使っても消す事ができない。。。。
5432のデフォルトポートで起動させたいのですが、
どうしたらよいでしょうか?

postgres% ps -ax | grep postmaster
13747 p1- S 0:03.71 /usr/local/bin/postmaster
1742 std R+ 0:00.00 grep postmaster

postgres% ps -ax | grep postgres
8343 ?? S 0:00.01 postgres: postgres xxxxx 127.0.0.1 idle
20066 ?? S 0:00.15 postgres: postgres yyyyy 127.0.0.1 idle
20067 ?? S 0:00.55 postgres: postgres zzzzz 127.0.0.1 idle
13748 p1- S 0:00.04 postgres: stats buffer process
13750 p1- S 0:00.68 postgres: stats collector process

どれもkillで殺せない。。。。rootになっても
511NAME IS NULL:04/05/08 09:16 ID:???
>>510
kill -9 プロセス番号
で、やってみれ。
512NAME IS NULL:04/05/08 10:14 ID:???
>>511
できました ありがとうございました。
pg_ctl -w start でpostgreSQLの起動もできました。
513NAME IS NULL:04/05/09 17:04 ID:jvcKDhUN
select時に N件目以降って指定できますか?
例えば 商品番号の昇順の51番目以降を取得とか
514NAME IS NULL:04/05/09 17:24 ID:nHdD8ST+
OFFSET
515NAME IS NULL:04/05/09 17:38 ID:xsuEz4KC
このスレ読んで
>>291
現在DBに接続中のセッションを調べ、
特定のセッションを強制切断させる方法を
ご教授下さい。

T-SQL(MSSQL Sybase)だと
sp_whoで調べて kill セッション#

Oracleだと
SELECT SID, SERIAL#,
STATUS, USERNAME, SCHEMANAME, OSUSER,
TERMINAL, MACHINE, PROGRAM, A.NAME
FROM V$SESSION S, AUDIT_ACTIONS A
WHERE S.COMMAND = A.ACTION;
で調べて
ALTER SYSTEM KILL SESSION 'sid,serial#';
です。

の方法が私も知りたいです。
ご存じの方ご教示ください。
516NAME IS NULL:04/05/10 01:33 ID:???
なにをどう調べるのかよくわかんないけど、
ps awx | grep postgres して kill か、
select * from pg_stat_activity して kill かどっちかじゃない?
517NAME IS NULL:04/05/10 08:12 ID:6QlAp3nc
>>516
>なにをどう調べるのかよくわかんないけど、
postgresに接続中のセッションIDを表示させ、
そのセッションに対するログインユーザ名とホスト名
を特定させたいです。
518NAME IS NULL:04/05/10 08:56 ID:h5OTSXD4
>>516
pg_stat_activityで調べることができました
pg_stat_***で
システム情報をしらべることができるのですね。

ありがとうございました。
519NAME IS NULL:04/05/11 16:23 ID:???
初歩的な質問だけど、
フィールドでvarcahr(10)に定義すると
2バイト文字は5文字?10文字?
1バイト文字なら10文字まで入るのはわかるんでつが^^;
さらにサイズを指定するのがメンドイので、
文字列が入る部分はすべてtextにしようと思うのですが
パフォーマンスに影響はあるのかなぁ・・・
520NAME IS NULL:04/05/11 16:31 ID:???
>>519
10文字。
substrとか文字列を弄る関数も全てマルチバイト文字でも1文字は1文字。

あと、varcharの実装はtextに文字数制限を付けているだけと聞いたことがあるので、
text型にしたらパフォーマンスが落ちることはないと思うのだが。
521NAME IS NULL:04/05/11 16:35 ID:???
>>520
ありがと^^;
ということはtext型が一番楽ということでつね。。
522NAME IS NULL:04/05/11 16:57 ID:???
>>520
ひどいなー

>>519
だまされんなよー
523520:04/05/11 17:08 ID:???
>>522
えー、違ってましたか?
確かに、text型がvarcharに比べてパフォーマンスが落ちるかどうか検証してないんだけど。

あと、text型が一番楽とは言っていない。
524NAME IS NULL:04/05/11 17:26 ID:???
>>523
5文字でしょ。

525520:04/05/11 17:36 ID:???
>>524
いや、マルチバイト文字でも10文字入る。
ひょっとして、オプションによって挙動が違うのか?
526NAME IS NULL:04/05/11 17:42 ID:???
バージョンによって違います。
7.2以降は10文字。
http://osb.sra.co.jp/PostgreSQL/7.2/changes.html

>>524は7.2より前のバージョンを使っているか、あるいは
腐ったエンコーディングを使っています。
527NAME IS NULL:04/05/11 19:52 ID:???
く、腐ったエンコーディング?
528NAME IS NULL:04/05/11 22:12 ID:???
ウンコーディング(うんこのようなエンコーディング)
529NAME IS NULL:04/05/12 00:18 ID:???
まあバジョーソ書いてないから仕方ないな。
530NAME IS NULL:04/05/12 00:35 ID:???
>>519
ってか試せよ
531NAME IS NULL:04/05/13 12:16 ID:UXUbe/SN
オレも他のDBMS(OracleやSQLServer)
から最近postgresを使用することになって
いじくりまわしている最中だけど、
>>515-516
つーことは、ユーザの接続はスレッドではなく
プロセスで生成されるのか...
532NAME IS NULL:04/05/13 14:27 ID:???
>>526
バージョンは7.23でつ。。
ということは10文字入りまつね^^;
533NAME IS NULL:04/05/13 17:20 ID:???
>>531
そう。今開発中のWin32版もプロセス。
PowerGres on Windowsはスレッド使ってるらしいけど。
534NAME IS NULL:04/05/13 22:22 ID:Y6NPbISv
7.1以上で動作するクライアントアプリをc++でつくりたいのですが 
libpq++だと
http://osb.sra.co.jp/PostgreSQL/7.3/c++.html
のような変更があるみたいなので
libpqを使って必要な分だけ自分でラッパークラスを書こうと思っているのですが
こういう事するのは一般的でしょうか?

535NAME IS NULL:04/05/14 12:55 ID:???
やったことないけど、
普通にlibpq++かlibpqxxか使えばいいんじゃない?
536NAME IS NULL:04/05/14 16:11 ID:???
phpPgAdminを入れて、ログインしたら、以下のメッセージがでてしまったのですが、
解決法はないでしょうか?

Warning: main(./classes/database/Connection.php): failed to open stream: No such file or directory in /usr/local/apache/htdocs/phpPgAdmin/libraries/lib.inc.php on line 151

Warning: main(): Failed opening './classes/database/Connection.php' for inclusion (include_path='.:/php/includes:/usr/local/lib/php/Smarty') in /usr/local/apache/htdocs/phpPgAdmin/libraries/lib.inc.php on line 151

Fatal error: Cannot instantiate non-existent class: connection in /usr/local/apache/htdocs/phpPgAdmin/libraries/lib.inc.php on line 152
537NAME IS NULL:04/05/15 00:01 ID:B63BO6N2
psql -l ではデータベースを指定しませんが、これを実行した時に
実際に接続されるデータベースはtemplate1であってますか?
それともpsq -lの場合はは何か特別な事をしているのですか?
538NAME IS NULL:04/05/15 01:07 ID:???
>>537
あってます
539>>536:04/05/15 01:54 ID:???
解決策ないでしょうか?
あるいは、ウェブインターフェースでアクセスできる管理ツールってないでしょうか?
540NAME IS NULL:04/05/15 02:31 ID:Lqh5Fsrq
CygwinにPostgreSQL 7.4.1をインストールしました。
initdb --no-locale --encoding=unicode で初期化しています。

timestamp型のフィールドに now() をインサートすると、
9時間前の日時が入ってしまいます。これは何故でしょうか?
--no-localeがいけないのでしょうか?
541もっきん200:04/05/15 07:28 ID:JX8A6yQk
システムカタログの内容を一般ユーザーで見せるために、
viewを使用してそのviewのアクセス権限を変えればいいんすかねぇ〜?
542NAME IS NULL:04/05/15 09:40 ID:fblKz0vv
すみません。
PostgreSQLをWindowsで動かすには、
必ずCygwinを入れて、
その上で動作させる必要があるんでしょうか?
543NAME IS NULL:04/05/15 14:41 ID:???
>>542
Windows版PostgreSQLも出てる。
544NAME IS NULL:04/05/15 17:16 ID:ySbJ5v5+
PostgreSQL 7.3.xxを使っているのですが、
配列型の列を参照するときにどれか、
WHERE句でその配列型のフィールドにあると言う条件を
マニュアルを見ながら書いたのですが、わかりません。
教えていただけないでしょうか?

WHERE AAA = ANY(HOGE);
545NAME IS NULL:04/05/15 22:35 ID:B63BO6N2
>>542じゃありませんが
cygwin使わずに起動しようとした場合
pg_ctlはシェルなのでpostmasterを直接起動するしかないんですか?
powergrestなら大丈夫なのかなー
546NAME IS NULL:04/05/15 22:40 ID:???
ipc-daemon(C:\cygwin\bin\cygrunsrv.exe)

C:\cygwin\bin\cygrunsrv.exe
547NAME IS NULL:04/05/15 22:41 ID:???
ああ、うちの環境そのままコピっちゃったけど
まあ、そんな感じ
548NAME IS NULL:04/05/15 23:17 ID:gzzd/Q6R
>>540
cygwinの環境でのdateコマンドは
日本時間になってる?
549540:04/05/16 01:00 ID:???
>>548
今確認してみましたが、dateコマンドでは日本時間が表示されました。
550NAME IS NULL:04/05/16 02:13 ID:064W36JR
>>540
SET TIME ZONE 'JST';

起動時に設定したかったら
postgresql.confで
timezone=JST

PGTZ環境変数にJST
をセットしてみる。
551NAME IS NULL:04/05/16 02:48 ID:???
テーブル内に関数の格納ってできるものでしょうか?

例えば、
syori1(input text) return integer as '(略)
と、
syori2(input text) return integer as '(略)
等の関数があるとして
syori_functionsテーブル
  id  | function
-------------------
     1| syori1(input)
     2| syori2(input)
     3| syori1(input)
、、、、、、等といったように関数をしまっておき

select function('さいたま') where id=1;
等指定してやって望む関数が使われるように格納してみたいのですが、
そんなのできるでしょうか?

とりあえず、テーブル内に関数をしまっておいて、
それを呼び出す方法があればそれほど手段は問いません。
552NAME IS NULL:04/05/16 02:50 ID:???
ただ、この「どの関数を使うか」と言うのは入れ替わる可能性が高いので、
できれば、関数内で分岐してごりごり、、、と言うのではなく、
sqlで必要な所だけ変えれるのがいいのですが、、、、。
553NAME IS NULL:04/05/16 02:56 ID:???
一部訂正
syori1(input text) return integer as '(略)
と、
syori2(input text) return integer as '(略)

CREATE FUNCTION syori1(input) return integer as '(略)
と、
CREATE FUNCTION syori2(input) return integer as '(略)

select function('さいたま') where id=1;

SELECT function('さいたま') from syori_function where id=1;
554NAME IS NULL:04/05/16 03:42 ID:???
連投すみません。
関数本体でなくても、先のテーブルに
CREATE FUNCTION syori1(input text) return integer as '(略)
と、
CREATE FUNCTION syori2(input text) return integer as '(略)
等の関数があるとして
そのoidがそれぞれ10000,10001だとします。
でsyori_functionsテーブルに、
  id  | function
-------------------
     1| 10001
     2| 10000
     3| 10001
といったようにoidを格納して、
SELECT function('さいたま') from syori_function where id=1;
とやった時に、そのoidを見て関数を呼び出す関数をつくると言う事でもいいかも知れません。

ただ、関数のoidから関数を呼び出す方法って誰か知らないでしょうか_
555NAME IS NULL:04/05/16 11:20 ID:???
>>554
いったい幾つ位の関数を使う予定なんだろうか?
CASEで関数を切り替える方法はどうよ。
556NAME IS NULL:04/05/16 13:13 ID:0id9T6PE
本は何が良いですか?
557NAME IS NULL:04/05/16 17:59 ID:???
>>556
何がしたいかによるんじゃない?

とりあえず俺は
「PostgreSQL 全機能 リファレンス」
558NAME IS NULL:04/05/16 22:07 ID:???
>>556
Google Hack。Google を使いましょう。
559NAME IS NULL:04/05/17 00:25 ID:???
>>555
最低でも数十個単位でありますが、見当が付きません。
と言うより、まだ設計も殆どできてないので何ともいえないのです。
ただ一ついえるのは半年から一年に一度ぐらい処理の方法が代わるのです。
しかもそれは事前に内容は予測できません。

ですので、できるだけ見通しをよくするために、
関数もテーブルに格納しておきたいのですし、
変更の無い部分に間違って影響がでないように一つの関数にまとめるのは避けたいのです。

関数名だけをテーブルにいれておいて、plpgsqlで、
文字列繋いでSQL文にしてやるという手も思い付いたのですが、
できれば、もっとスマートな方法がいいんです、、、、。
560NAME IS NULL:04/05/17 00:39 ID:???
>>556
シーラカンス
561NAME IS NULL:04/05/17 00:51 ID:???
>>556
本ってのは相性があるから、他人に教えられた本がいいとは限らない。

俺のやりかたとして。
とりあえず、検索だけで何とか数日頑張ってみる。
で、つまずいて、解決法を模索してみる。
あるいは、そうやっていろいろ探す中でできるかどうか微妙だが、
じぶんがやりたい奴のキーワードを覚えておく。
(ODBCとかreplecationとかplpgsqlとか)

何日か頑張ったあと大きめの本屋にいって、索引なんかでそのつまずいたのや、やりたい事がすぱっと見つかった本を買っている。
562NAME IS NULL:04/05/17 10:07 ID:???
>>559
そのplpgsqlで動的sqlでいいんじゃないかな。
どうしてもoidでやりたけりゃ、そのoidでpg_procを
検索してやればできるけど、それもあんまスマートじゃないよね。
563NAME IS NULL:04/05/17 21:31 ID:LAIVjm5a
----+----+----
row1 |row2 |row3
----+----+----
a   |d   |a
b   |d   |e
c   |f   |d
----+----+----

↑の様な表の row1〜3の列の値一覧を重複しないように取り出すには
どういうSQLを書けばいいでしょうか?
564NAME IS NULL:04/05/17 21:45 ID:???
>>563
質問の意図を取り違えているかも知れんがこういうことか?

SELECT row1 FROM table UNION SELECT row2 FROM table UNION SELECT row3 FROM table;
row1
------
a
c
d
e
f
565563:04/05/17 23:02 ID:LAIVjm5a
>>564
それっす!
ありがd
566NAME IS NULL:04/05/19 14:57 ID:???
SELECT * FROM foo WHERE attr LIKE 'BB%';
とかのクエリーにINDEX張るにはどうしたらいいんだろ。
関数インデックスじゃないしなぁ。
CREATE INDEX ON foo(attr);として作ったINDEXは使われるのかしら
EXPLAN ANALYZE してみると、
Index Scan using foo_pkey on foo ...
Index Cond: ((foo >= 'BB'::bpchar) AND (foo < 'BC'::bpchar))
Filter: (foo 〜〜 'BB%'::text)
ってなる。ということは使われているのかなぁ。
最後のFilterの意味がわからん。。どなたか教えてもらえると助かりまふ。
567NAME IS NULL:04/05/19 19:22 ID:k1Y8rwe3
初心者なんですが、nullで作成してあるフィールドを
not null に変更するには、どうしたらいいんでしょうか?
568NAME IS NULL:04/05/19 20:15 ID:???
>>567
ALTER TABLE table_name ALTER column_name SET NOT NULL
569NAME IS NULL:04/05/19 22:12 ID:CIiGscPP
PostgreSQLの文字コードをSJISで使う方法を教えてください。

Redhat9+PostgreSQL7.4.1です。

$configure --enable-multibyte=EUC_JP
・・・
$initdb
$postmaster -S -i
$createdb -E EUC-JP TEST

で createdb: SJIS cannot be used as a database encoding
といわれてしまいます。


570569:04/05/19 22:13 ID:CIiGscPP
570 は
$createdb -E SJIS TEST
の間違いです。EUC-JPなら大丈夫なんですけど・・・
571569:04/05/19 22:15 ID:???
また間違えてた・・・
>>569でした。
慌てすぎですね・・・
572NAME IS NULL:04/05/19 22:21 ID:???
データベース本体はSJISに対応してないよ。
そして、client_encodingでググれ。
573569:04/05/19 22:30 ID:???
>>572
早速有難うございます。
サーバサイドはSJIS対応してなかったんですね・・・
client_encodingで、さっそく調べてみます
574NAME IS NULL:04/05/20 00:53 ID:???
彷徨ったあげく分からず。。。初歩的な質問なのかもしれませんが、
timestamp型のフィールドはNULLに出来ないんでしょうか?
575NAME IS NULL:04/05/20 01:11 ID:???
>>574
できる。
576574:04/05/20 09:13 ID:???
がふっ。普通に出来た。
アポなこと聞いてごめんなさい。
577NAME IS NULL:04/05/20 14:33 ID:OG7wfj+B
質問です。1テーブルあたり数百〜数千MBある主キー付きテーブルを数百持ったDBがあります。これに VACUUM ALL をかけるときにかかる時間の試算は、概算として、いくつかのテーブルを個別 VACUUM したときの平均から求められますか?
578NAME IS NULL:04/05/20 16:06 ID:6/MxRmhX
WindowsXP Pro
Cygwin 1.5.9-1
PostgreSQL 7.4.1-3
cygipc 2.03-2

createdb DB名
psql -e DB名 < File_name >& log.log
で、リストアしました。
以下のコマンドを実行すると、
DB名=# select * FROM table1;
ERROR: relation "table1" does not exist

テーブル名を”(ダブルクオテーション)で囲っても
同じエラーです。
\dや\dtを打っても「No relations found.」と出ます。

ためしにダンプを出すと、0バイトのファイルが作成されるかと
思ったら同じくらいのダンプファイルが作成されたんです。

なんでテーブルが見えないのでしょうか。
教えてください。
579NAME IS NULL:04/05/20 17:04 ID:6/MxRmhX
がふっ。ユーザを変えてログインしたら出来た。
アポなこと聞いてごめんなさい。
580NAME IS NULL:04/05/21 23:51 ID:1uYvLAry
libpqの関数について質問があります
以下のようなコードを書いた時@、Aの位置でres1,res2の持つ内容が
PQexecで返された時のものと同じ内容である事は保証されているのでしょうか?

PGresult* res1;
PGresult* res2;

res1 = PQexec(.....................);
res2 = PQexec(.....................);

//@ここでres1の内容は保証されるのか?

PQclear(res1);

//Aここでres2の内容は保証されるのか?

PQclear(res2);
581NAME IS NULL:04/05/21 23:57 ID:???
されてます。
PQexec()からPQclear()までの間は。
582NAME IS NULL:04/05/22 00:14 ID:F5J7Wnb1
>>581
ありがとうございます
この手の情報ってやっぱりソース読むしかないんでしょうか?
583NAME IS NULL:04/05/22 11:04 ID:???
マニュアルとかに書いてないか?
漏れは(別件で)ソース読んでたが。
584NAME IS NULL:04/05/22 17:03 ID:???
レコード数の最大数を設定したいのですが
そのようなことはできますでしょうか?
例えば10万件のデータを保存するとして
10万を超えたら古い順から削除のような
ことは設定とかでできるのでしょうか?
それともデータを追加するときにチェックして
自分で削除みたいなことをしなくてはいけないのでしょうか?
585NAME IS NULL:04/05/22 17:24 ID:???
常にやる必要があるならトリガ、
まとめて処理でいいなら(夜間)バッチ。
586584:04/05/22 17:28 ID:???
トリガでやってみます。
ありがとうございます。
587NAME IS NULL:04/05/30 16:45 ID:MnPA5apT
insertとすると常に最後に行を追加するのですが、
この行の並びを入れ替えることはできますか?
例えば、3個目に追加した行を2行目(上に)移動させることはできますか?
またそのような関数は何ですか?
588NAME IS NULL:04/05/30 19:23 ID:???
>>587
無い。つーか、ORDER BY句をつけないがきり、
データの並びに期待するな。
589NAME IS NULL:04/05/30 22:30 ID:???
>>587
順序を表すコラム(例えばcol_orderとか)を作ってそのコラムで
order byして取ってくる。insertするときは当然insertされる行以降の
col_orderの値をずらさないといけない。
トランザクションをきっちりしないとめちゃくちゃになる。

この方式だとデータが増えたときにinsertがめちゃくちゃに重くなるが・・・
590NAME IS NULL:04/05/30 22:35 ID:???
あ、当然insertするまえに、col_orderの値を決めないといけないな。
もちろん同一トランザクションで。
591NAME IS NULL:04/06/02 11:55 ID:???
load avarage が高いので ps すると
CPU 時間が長かったりメモリを大量に使っている postgres が見つかりました。
それらがどんな SQL を実行しているかリアルタイムに見る方法はないでしょうか?
592paooon:04/06/02 12:05 ID:LURKwlpN
pgadmin3をDebian woodyにapt-getでインストールしたんですけど
起動しようとするとエラーが出るんですぅ↓

postgres@debian:~$ pgadmin3

(pgadmin3:906): Gtk-WARNING **: cannot open display:

コレってGTKの問題ですかねぇ?
起動方法とかって間違ってますかねぇ。。。
スレ違ってないよな。。。
593NAME IS NULL:04/06/02 19:10 ID:???
質問です。

PQexec()で,返ってこない現象がでて困ってます。
いったん現象が出始めると,PCをリブートしないと直りません。
でも,でないときは全く再現できないので原因がわかりません。

straceで追っかけてみると,クエリ送信 -> 結果取得中にselectで止まってるようです。

クエリ送信 (たしか,send)
select
recv
select
recv
old_mmap
select <--- ここで固まる

原因として,どんなことが考えられるでしょうか?
ちなみに,その状態で固まってしまったときに,psql で同じクエリを実行してみたら
ちゃんと結果が表示されました。
594NAME IS NULL:04/06/04 09:47 ID:2WedxY3i
>>540ではないんですが、同じような状態になっていて困ってます。
環境はWinXP+Cygwin+Postgre7.4.1(Cygwinでインストールできるやつ)です。

私の環境では、−18時間されてしまうんです。こんな感じ。
test1=# show time zone;
TimeZone
-----------
-09:00:00
(1 row)

test1=# select current_timestamp;
timestamptz
-------------------------------
2004-06-03 15:41:27.678302-09
(1 row)

ただ、AT TIME ZONEで'JST'を指定すれ正常な時間が表示されるんですが、
毎回これをつけなきゃいけないのですかね?

test1=# select current_timestamp at time zone 'JST';
timezone
----------------------------
2004-06-04 09:41:44.989302
(1 row)

ちなみに、Cygwin上のdateコマンドでは、正確な時間が表示されます。
教えてくださいまし。。。
595NAME IS NULL:04/06/04 14:12 ID:???
質問です。
データベース単位で容量制限をかける場合はどうしたらいいのでしょうか?
たとえばtestdbは50M、test2dbは100Mみたいな感じで。
596NAME IS NULL:04/06/06 02:48 ID:U9FYxmUR
CREATE FUNCTION trig_income() RETURNS trigger AS '
DECLARE
inDate text;
BEGIN
IF NEW.in_id = 1 THEN
-- in_idが1のときにだけ処理を行う
inDate := substring(now() from ''^(.*) .*$'');
PERFORM fncInsMoney(incDate);
END IF;

RETURN NEW;
END;
' LANGUAGE plpgsql;



CREATE FUNCTION fncInsMoney(text) RETURNS bigint AS '
DECLARE
aDate ALIAS FOR $1;
GETS record;
inmoney bigint;
BEGIN
--aDateが範囲内に収まるレコードのdate_id-1のdate_idと一致するレコードを取得する
select into GETS s_date, e_date from mymonth where date_id = (select date_id - 1 from mymonth where s_date <= aDate and aDate <= e_date);
IF GETS.s_date IS NULL OR GETS.e_date IS NULL THEN
--何もしない
ELSE
--金額の取得
inmoney = fncGetMoney(GETS.s_date, GETS.e_date);
--取得した金額をincomeテーブルにInsertする
insert income values(...省略...);
END IF;

RETURN inmoney;
END;
' LANGUAGE plpgsql;

create trigger mytrigger_income1 before insert on income for each row execute procedure trig_income();


上記のようなトリガを定義し、Insert文でin_idに1を指定したSQL文を実行しようとしたところ、
ERROR: function with OID 394755 does not exist
CONTEXT: PL/pgSQL function "trig_income" line 7 at perform
とエラーメッセージが発生し、トリガ関数が実行されません。原因はいったいどういったところなのでしょうか?
使用バージョンはpostgresql7.4.1です。
597NAME IS NULL:04/06/07 02:47 ID:???
>>592
pgsqljpとクロスポストでつか?
逝けやゴルァ
598NAME IS NULL:04/06/07 10:36 ID:lVMs3A8R
599NAME IS NULL:04/06/07 16:39 ID:???
>>596
直感だが、create or replace function で、
trig_income()を作りなおしてみるといいカモ。
600NAME IS NULL:04/06/07 22:16 ID:???
>>599
その直感を信じて作り直したところ、動きました。
ありがとうございました。
601NAME IS NULL:04/06/09 02:23 ID:???
>>599
エスパー キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
602NAME IS NULL:04/06/09 02:35 ID:???
>>601
フーセン顔にかぶったりするんだな
603NAME IS NULL:04/06/14 21:31 ID:???
インデックスを張るのに最大文字数とかあるんでしょうか?
数値型なら問題はないんだろうけど、文字列型に張る場合に
最大数が知りたいでつ。。
604NAME IS NULL:04/06/17 12:05 ID:SS9v0W+w
はいいいい〜〜〜
605NAME IS NULL:04/06/18 13:32 ID:???
 CygwinのpostgreSQLを使おうとしていますが、initdbで下リンクと
同じ症状がでます。
 http://archives.postgresql.org/pgsql-cygwin/2004-03/msg00013.php
 「ここでの解決はCYGWIN=serverを設定する」でしたが、それは実施
しています。
 それ以外の問題として、何か考えられるでしょうか?
(参考 http://discypus.jp/pukiwiki/pukiwiki.php?Cygwin%2FPostgreSQL
606NAME IS NULL:04/06/21 19:46 ID:2P0Dv5+S
サブクエリ使ったときってindexは使われないもの?
Explainで見てみたら、カッコ内のところでしか
使われていなかったんですけど。

Ver7.4.2です
607NAME IS NULL:04/06/21 19:50 ID:???
>>606
つかう。
608606:04/06/21 20:54 ID:2P0Dv5+S
create index idx_hoge_1 on hoge(abc,def,ghi);
create index idx_geho_1 on hoge(code);

SELECT programtitle from hoge
where abc = (select abc from geho
where code = 'aaa')
and def < 'NOW' and 'NOW' < ghi;

というSQLを出すとgehoはインデックスが使われるんですけど
hogeでは使われません。
hogeの方は、abc.deef,ghiを個別にインデックスを貼っても
使われませんですた。

hogeの方でもindexを使われるようにするにはどういうふうに
indexを定義すればいいでしょうか?
609NAME IS NULL:04/06/21 21:14 ID:???
>>608
不等号だと範囲が広すぎてプランナがインデックスを
使わない方が高速だと判断していそうだ。

そのSQL文だけを見ると、複合インデックスはやめてabcだけに
した方がいいような気がする。
abcだけでインデックスが使われるようなテーブル内容であればの話だが。
610606:04/06/21 21:23 ID:2P0Dv5+S
>>609
プランナに無理矢理インデックスを使わせるには
どうしたらいいでしょうか?
611NAME IS NULL:04/06/21 22:16 ID:???
>>610
ちっとは調べれ。
SET enable_seqscan TO off;
612606:04/06/21 23:01 ID:???
>>611
ありがd
613NAME IS NULL:04/06/22 03:10 ID:???
>>612
あのな、感謝をきちんとした言葉にするということは重要なことだぞ。
614NAME IS NULL:04/06/22 09:40 ID:???
>>613
スマソ
615NAME IS NULL:04/06/22 10:45 ID:???
>>613
うぜぇよバーカ
616NAME IS NULL:04/06/22 17:23 ID:???
おやおや・・・
617NAME IS NULL:04/06/23 01:28 ID:???
あれまあ・・・
618NAME IS NULL:04/06/23 10:12 ID:???
やれやれ・・・
619NAME IS NULL:04/06/23 10:57 ID:???
ぷにぷに・・・
620NAME IS NULL:04/06/23 18:41 ID:???
グッチョングッチョン・・・
621NAME IS NULL:04/06/23 20:54 ID:???
メメタァ
622NAME IS NULL:04/06/24 01:20 ID:???
ノックしてもしもぉ〜〜〜し
623NAME IS NULL:04/06/24 21:23 ID:???
あのな、笑いをきちんとした言葉にするということは重要なことだぞ。
624NAME IS NULL:04/06/24 22:30 ID:???
PHPでautoCommitのステータスを知る方法ってありますか
625NAME IS NULL:04/06/24 23:35 ID:???
>>623
スマソ
626NAME IS NULL:04/06/25 10:40 ID:???
>>623
うぜぇよバーカ
627NAME IS NULL:04/06/25 12:58 ID:???
おやおや・・・
628NAME IS NULL:04/06/25 13:00 ID:???
あれまあ・・・
629NAME IS NULL:04/06/25 13:06 ID:???
やれやれ・・・
630NAME IS NULL:04/06/25 13:30 ID:???
ぷにぷに・・・
631NAME IS NULL:04/06/25 14:45 ID:???
グッチョングッチョン・・・
632NAME IS NULL:04/06/26 03:08 ID:???
メメタァ

#「メメタァ」ってなに?
633NAME IS NULL:04/06/26 03:46 ID:???
ノックしてもしもぉお〜〜〜し
634NAME IS NULL:04/06/26 12:18 ID:???
>>632
ジョジョの奇妙な冒険に出て来るセリフです。
635NAME IS NULL:04/06/26 19:52 ID:bhIUwpJe
>594
postgresql.conf
の設定で、timezoneの設定を以下のようにしてください
timezone='+09'

#っていうか俺自身も同じ問題ではまった。。。
636632:04/06/27 01:34 ID:???
>>634
ありがとう!
637NAME IS NULL:04/06/27 19:35 ID:???
       ,:::-、       __
      ,,r::::::::::::〈:::::::::)    ィ::::::ヽ
      〃::::::::::::;r‐''´:::::::::::::::::::::ヽ::ノ
    ,'::;'::::::::::::::/::::::::::::::::::::::::::::::::::::
     l::::::::::::::::::l::::::::::●::::::::::::::●:::::ji
    |::::::::::::::::::、::::::::::::::( _●_)::::::,j:l  クマー!
    }::::::::::::::::::::ゝ、::::::::::|∪|_ノ::;!
.    {::::::::::::::::::::::::::::`='=::ヽノ:::::/     
    ';::::::::::::ト、::::::::::::::i^i::::::::::::/
      `ー--' ヽ:::::::::::l l;;;;::::ノ
【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
638NAME IS NULL:04/06/27 19:53 ID:???
コピペでもいいって、自分で書く気はしないわな。
639NAME IS NULL:04/06/28 05:43 ID:q9OXeYQn
pg_dumpし忘れてしまったままOSインスコし直してしまった.
$PGDATAのデータだけ残ってる場合にrestoreする方法はない?

システムカタログぐねぐねいじってみたけどよくわからんです.
助けてくだせぇ.
640NAME IS NULL:04/06/28 16:09 ID:FLWas67k
並べ替えで、最初に更新日を見てNULLだったら登録日を見て並び替える。
と言う動作をさせたいのですが、いい方法はありますか?

ちなみに、
>ORDER BY CASE WHEN 更新日 IS NULL THEN 登録日 ELSE 更新日 END DESC;
としてみると、
>ERROR: Attribute テーブル名.更新日 must be GROUPed or used in an aggregate function
と言うエラーになってしまいました・・・。
641NAME IS NULL:04/06/28 17:44 ID:???
>>640
select の1つ目にそのcaseを書いて
order by 1
642NAME IS NULL:04/06/28 22:23 ID:1sNTjZlb
>>639
そのインスコ前のpostgresqlと同じバージョンをどこかに入れて、
そこから再度pg_dumpしかないんじゃないかな。
643640じゃないけど:04/06/29 01:19 ID:???
>>641
なるほど!勉強になりました。
644NAME IS NULL:04/06/29 01:26 ID:???
PGCluster等を使わずに入力されたクエリを別のデータベースサーバに転送することってできますか?
645NAME IS NULL:04/06/29 01:42 ID:???
>>644
pgpoolやUsogresもダメなんか?
646NAME IS NULL:04/06/29 11:05 ID:X0VOT0n9
>641
エラーが出ていたのは、SELECT句で"count(*)"していたからで、
"SELECT *"にしたらorder by句でもうまくいきました。
でも、そういう方法でもできるんですね。とても勉強になりました。
ありがとうございました。
647639:04/06/30 02:18 ID:x8M/YemP
>642
ども.
それでもだめなんすね.

psql dbnameすると
not found(再現環境ないのでいい加減ですごめんなさい)で,
pg_dump dbnameでは中身からっぽになってしまい.
createdb dbname
すると
dbname already exists(同じく)
になっちまいます.それでシステムカタログいじるのを思いついたんですが,
やり方がイマイチわからない.こまった.
648NAME IS NULL:04/06/30 12:27 ID:???
>>647

$ psql -l

したらDBって見えるのかな。

$ pg_dumpall > out.txt
とかならdbnameには依存しないで吐けると思うんだけど
649NAME IS NULL:04/06/30 21:14 ID:dnZfdgTD
libpqってどのpostgreSQLのバージョンからバージョン3になったの?
650637:04/07/01 09:45 ID:vWEclAqN
だめでした。
pg_dumpallのソースに
pg_databaseをSQLで参照している部分がありました。
651NAME IS NULL:04/07/01 16:42 ID:???
652NAME IS NULL:04/07/01 16:47 ID:???
>>647

>  psql dbnameすると
>  not found(再現環境ないのでいい加減ですごめんなさい)で,
>  pg_dump dbnameでは中身からっぽになってしまい.
>  createdb dbname

そこで createdb dbname するんじゃなくて、
データベースが無い状態(initdb直後の状態)で、
psql -f out.txt template1
するんじゃなかったか
653NAME IS NULL:04/07/02 14:33 ID:EHkcqqEx
市町村合併により住所の変更を行おうとしました。
例として横浜市が海港市になったとします。
で下記の命令を発行しました。

=> update tbl_inf set home_adrs = translate (home_adrs,'横浜市','海港市');

「横浜市」→「海港市」はこれでできました。

しかしついでに「横浜市横田区」→「海港市横田区」と
なってほしいのが「海港市海田区」になってしまいました。

どうも1文字ずつ検索でかけて1文字ずつ置換しているようです。
これを「横浜市」→「海港市」だけ置換できるようには、
どのような構文を書いたらいいのでしょうか?

基本中の基本だと思いますがさくっと教えて頂けますたらありがたいです。
654NAME IS NULL:04/07/02 15:58 ID:???
>>653
UPDATE tbl_inf SET home_adrs = '海港市'||ltrim(home_adrs,'横浜市') WHERE home_adrs ~ '^横浜市';
655NAME IS NULL:04/07/02 19:57 ID:???
DBにパスワードを書ける方法がうまくいきません。

具体的には、perlスクリプトからuse Pgでconnectする際、
ユーザ名とパスワードで認証をかけたいのですが、
createdb -W で指定したパスワードがどうしてもきかない
ようです。

認証をかけるところが間違っているのではないかと思って
いるのですが、どうしてもやり方がわかりません。

ご教授いただけますと幸いです。
656NAME IS NULL:04/07/03 02:14 ID:y02b0D0u
これを日本および海外で広めると病気が治るかもしれない。
オラウータンなどの
サルは自分と似ていない自分の子供を(子殺しする)殺す。
(立花隆『サル学の現在』平凡社より)

http://www.google.co.jp/search?q=cache:YzJwPXsiJZAJ:www.impala.jp/bookclub/html/dinfo/10110005.html+%E3%82%B5%E3%83%AB%E5%AD%A6%E3%81%AE%E7%8F%BE%E5%9C%A8%E3%80%80%E5%AD%90%E6%AE%BA%E3%81%97&hl=ja
657NAME IS NULL:04/07/03 17:22 ID:???
>>653
replace()ってなかったっけ?
>>655
pg_hba.conf をシラベロ
658639:04/07/04 02:01 ID:NtUGNbZs
>>652
詳しく教えて下せぇ
out.txtってどんなんですか?
659NAME IS NULL:04/07/06 18:21 ID:???
抽出に意外と時間がかかってしまって悩んでいます。
以下のSQLで7・8秒程度かかってしまいます。
念のため vacuum しましたが、状況はかわりません。
なにか無駄があるのでしょうか?
USER_MSTのレコード数は6000で、NAME_MSTは3です。

SELECT NAME FROM NAME_MST WHERE MAXUSER > (SELECT count(*) FROM USER_MST WHERE USER_MST.NAME=NAME_MST.NAME);
660NAME IS NULL:04/07/06 19:42 ID:???
>>659
VACUUM FULLでも改善しないのかな?
SQL的には、
SELECT name FROM user_mst GROUP BY name HAVING count(*) < ( SELECT maxuser FROM name_mst WHERE name_mst.name=user_mst.name);
の方が速いかも。自信はないし、サブクエリが常に1つの行を返す条件付だ。テーブルの定義がワカラン。
661NAME IS NULL:04/07/06 20:14 ID:???
>>659
インラインビューの方がジョイン対象の
レコードが少なくて済み、速いかな。

SELECT A.NAME FROM
NAME_MST AS A ,
(
SELECT NAME,count(*) AS U_COUNT
FROM USER_MST GROUP BY NAME
) AS B
WHERE
A.NAME = B.NAME AND
A.MAXUSER > B.U_COUNT

662659:04/07/07 11:14 ID:???
>>660-661
みごと改善されました。どちらも3秒弱で抽出できます。
たいへんたすかりました。ありがとうございました。
663NAME IS NULL:04/07/07 17:09 ID:WP3siauK
RHL9.0+PostgreSQL7.4.2-1+pgpool-2.0.2

pgpool.conf で replication_mode = 1 に設定すると、
接続できない・・・orz

pg_hba.conf
local all postgres password

pgpoolのポート:5433
PostgreSQLのポート:5432

# psql -p 5433 testdb

psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

pgpoolのエラーログ
kind does not match between backends master(82) secondary(69)

誰か同じ現象が起きてる人いない?
664NAME IS NULL:04/07/07 17:12 ID:WP3siauK
おとなしくDBMirrorを使っておくかな・・・
トリガ系は管理がめんどいからなぁ・・・
665663:04/07/07 17:37 ID:WP3siauK
local all postgres trust ならうまくいくんだorz

パスワード使えないじゃないかヽ(`Д´)ノ
666NAME IS NULL:04/07/07 17:55 ID:???
pgpoolネタはmlに投げたほうが良くない?
667NAME IS NULL:04/07/07 18:00 ID:WP3siauK
>>666
そうするよ。どうもバグみたいだし。。
668NAME IS NULL:04/07/07 21:25 ID:y9tU68vn
like検索で前に%がつくとindexが使われないみたいですけど、
使いたい場合みなさんどうやって高速化してますか?
669NAME IS NULL:04/07/07 23:33 ID:???
'abcdef'
'bcdef'
'cdef'
'def'
'ef'
'f'

select * from hoge where data like 'ef%';
670668:04/07/08 09:54 ID:nHaZz6cj
>>669
どういう意味でしょうか?
レベル低くてすいません
671668:04/07/08 10:28 ID:???
>>669
一文字(or単語)区切りでワードを登録して関連づけるってことでしょうか?
672NAME IS NULL:04/07/08 11:49 ID:???
>>671
669じゃないけど、まぁ、そうゆうこと。
BBSログのような文書だと、案山子や茶筌をつかって、単語単位で、
型番とかコードのようなものだと、>>669のようにする。
673668:04/07/08 12:14 ID:???
>>669
>>672
わかりました。ありがとうございました
674NAME IS NULL:04/07/10 13:45 ID:???
perl Pgでupdateされた数を知りたいのですがどうすればよいのでしょうか?
insert delete select された数はわかるのですが
ttp://perldoc.jp/docs/modules/pgsql_perl5-1.9.0/Pg.pod
からupdateされた数を得る方法が見つけられませんでした
おしえてくだち〜
env
LANG=ja_JP.eucJP
hogedb | postgres | EUC_JP

pg_dump -U hoge -F c -f hogedb.cur
psql 7.3.6

から

env
LANG=ja_JP.eucJP
keibagp | postgres | EUC_JP

pg_restore -U hoge -d hogedb -F c hogedb.cur
psql 7.4.3
にデータをコピーしたいのですが
pg_restore: ERROR: invalid byte sequence for encoding "EUC_JP": 0x834b
CONTEXT: COPY user_data, line 1, column handle: "KC["
pg_restore: [archiver (db)] error returned by PQendcopy
というエラーになります

pg_dump -U hoge -F p -f hogedb.txt
でバックアップ
psql -U hoge -d hogedb -f hogedb.txt
リストアしました
すると
invalid byte sequence for encoding "EUC_JP"
というエラーが出ました。
なのでhogedb.txtを弄って
set client_concoding to 'sjis';
を追加してリストアしたら成功しました。
どうしてこのような文字コードエラーになるのでしょうか?

Tera Term
受信 送信
EUC EUC

サクっとバックアップリストアできる方法をおしえてくだち〜
677名無しさん@そうだ選挙に行こう:04/07/11 18:48 ID:BXoaYVgY
>>675-676

initdb --encoding=EUC_JP --no-locale

で初期化してなかったとか?
678NAME IS NULL:04/07/11 22:18 ID:bElgLVyw
like をした場合、'hoge%'のような前方一致ならindexが使われると
思うのですが、explainでみると使われてないようです。
Seq Scan はfalseにしてるので使われない理由がわかりません。
考えられる理由はなんでしょうか?

環境は
redhat9
Ver 7.4.2
です
679675-676:04/07/11 22:26 ID:???
>>677
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
マニュアルからコピペのまんま実行してました。

rm -fr /usr/local/pgsql/
deluser -r postgres
...
/usr/local/pgsql/bin/initdb --encoding=EUC_JP --no-locale -D /usr/local/pgsql/data

pg_dump -U hoge -F p -f hogedb.txt
psql -U hoge -d hogedb -f hogedb.txt
でやってみましたがまたエラーになりました。
psql:hogedb2004-07-10.txt:989: ERROR: invalid byte sequence for encoding "EUC_JP": 0x834b
CONTEXT: COPY user_data, line 1, column handle: "KC["
psql:hogedb2004-07-10.txt:1440: ERROR: invalid byte sequence for encoding "EUC_JP": 0x906d
CONTEXT: COPY user_info, line 1, column mei: "m"

バックアップ元で違うデータベースにリストアするのは成功するのですがコピー先のマシンで
やるとエラーになります。
カラムに日本語がないところは大丈夫なんですが

マニュアル22.3. リリース間の移行
のようにバックアップ、リストアしてるのに・・・。
次は逆にバックアップとコピー先を逆にしてためしてみるとします。
680NAME IS NULL:04/07/11 23:44 ID:BXoaYVgY
>>679
使ってるディストリは何?
それと、PostgreSQLはソースからインスコ?それともrpm?
681NAME IS NULL:04/07/11 23:52 ID:BXoaYVgY
>>679
んで、 select * from pg_database;した時のencodingって何になってる?
682675-676:04/07/12 13:55 ID:???
Linux version 2.4.7-10 ([email protected]) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)) #1 Thu Sep 6 17:27:27 EDT 2001
両方ともソースからインスコです.

datname | datdba | encoding | datistemplate | datallowconn | datlastsysoid | datvacuumxid | datfrozenxid |
keibagp | 1 | 1 | f | t | 17140 | 464 | 464
datname | datdba | encoding | datistemplate | datallowconn | datlastsysoid | datvacuumxid | datfrozenxid |
keibagp | 1 | 1 | f | t | 16974 | 16472838 | 3237698311 |

pg_dumpの出力ファイルのエンコーディングですが
コピー元:SHIFT-JIS
コピー先:euc-jisx0213
となっています。
pg_dumpの出力ファイルですでにエンコーディングがおかしい。

コピー元は以下で確認
iconv -f SHIFT-JIS -t EUC-JP hogedb.txt
コピー先のはvimで確認
set fileencoding?

コピー元が
/usr/local/pgsql/bin/initdb --encoding=EUC_JP --no-locale -D /usr/local/pgsql/data
で初期化されているのかはわかりませんが
コピー元とコピー先を逆にしてためしたら期待どおりの結果になりました。
コピー元のは初インスコマシンだったので設定がまちがってたのかもしれません。

680-681どもでした。
683NAME IS NULL:04/07/13 11:19 ID:???
>>674

正しいのかどうかわからんが、うちではこんな感じで取れてます

$conn = Pg::connectdb($dsn);
$result = $conn->exec($sql_str);
if ($result->resultStatus ne PGRES_COMMAND_OK) {
print $conn->errorMessage;
exit;
}
($dummy, $cnt_tmp) = split / /, $result->cmdStatus;# UPDATEしたレコード数
684NAME IS NULL:04/07/13 11:43 ID:???
postgresql7.4.3を入れていろいろやってるんですが、
上にもあったように、EUC-JP関連で文字化けします。

これって、initdb時とcreatedb時に両方ともエンコード
指定しないと文字化けしてしまうものですか?
それとも、createdb時に-E EUC-JPすれば文字化け
しないものですか?
685ポスグレ@だ〜ぅいん:04/07/13 23:35 ID:RLObMCML
OSXでPosgreSQLとアパチ&PHPで遊んでるのは漏れぐらいか?
けっこう使えるのだが。

関係ない話題でスマソ。
686NAME IS NULL:04/07/14 01:51 ID:???
>>685
それ聞いて、漏れも少しマクーが欲しくなったよ
687NAME IS NULL:04/07/14 03:58 ID:???
PHPでプログラムを組んでいます。

SET TRANSACTION;
UPDATE文;
if(UPDATE文がエラーの時){ ROLLBACK; }
else{ COMMIT; }

のようにしてある条件の時、ROLLBACKを実行したいのですが、
PostgreSQLだとAUTOCOMMITで自動的にCOMMITされちゃいますよね?
AUTOCOMMITのオプションをオフにすればいいと思うのですが、
それだと全部の文に「SET TRANSACTION〜COMMIT;」を
付けなくちゃいけないのでめんどくさいです・・・
なので、ある特定の文だけROLLBACKができるように
することは可能でしょうか?
688NAME IS NULL:04/07/14 10:30 ID:???
>>687
begin tran
689NAME IS NULL:04/07/14 15:00 ID:Z0bKDIh8
ビューとルールについて質問です。
まず次のようなテーブルを作ります。

create table tbl1(
 id int,
 a int,
 b int
);

create table tbl2(
 id int,
 c int,
 d int
);

で、この 2つのテーブルを id で繋いだビューを作ります。

create view testview as select tbl1.id,a,b,c,d from tbl1,tbl2 where tbl1.id=tbl2.id;

このビューは、カラム id、a、b、c、d が見えます。
tbl1 と tbl2 に以下のようにデータを準備しておきます。

insert into tbl1 values(10,1,2);
insert into tbl2 values(10,3,4);

これで testview を select すると、id=10、a=1、b=2、c=3、d=4 のレコードが見えます。

ここでビューに更新時のルールを追加します。

create rule testrule as on update to testview do instead (
 update tbl1 set a=new.a,b=new.b where id=old.id;
 update tbl2 set c=new.c,d=new.d where id=old.id
);

これで、ビュー testview に update をかけると、tbl1、tbl2 が更新されるようになったと思います。

つづく
690689:04/07/14 15:06 ID:Z0bKDIh8
>>689 の状態で、ビューに対して次のように update してみます。

update testview set a=10,b=20,c=30,d=40 where id=10 and (a<>10 or b<>20);

これは、id=10 のレコードの a、b、c、d を更新するのですが、a および b に値の更新が無い場合にはなにもしない、
という条件です。
今回は更新前の値が a=1、b=2 になってるので、id=10 のレコードは更新対象です。

で、実際に実行すると、

UPDATE 0

と返ってきます。
testview を select すると

id | a | b | c | d
----+----+----+---+---
10 | 10 | 20 | 3 | 4

となっていて、tbl1 部分の update だけ完了しているようです。
期待している結果は

id | a | b | c | d
----+----+----+---+---
10 | 10 | 20 | 30 | 40

なのですが・・・

つづく
691689:04/07/14 15:17 ID:Z0bKDIh8
>>690 の update では、>>689 で設定したルールの前半部分、tbl1 に対する update しか処理されません。
>>690 の update文を

update testview set a=10,b=20,c=30,d=40 where id=10;

のように置き換えると、ルールに従って tbl1、tbl2 の update がされます。

いろいろ条件を探っていくと、この理由は次のようなものっぽいのです。

1) >>689 の update文に合致するレコードにルールが適用されて、まずtbl1 の update がされる
2) tbl1 を update してしまうと、その時点で a=10、b=20 になってしまい、元のupdate文にあった
  (a<>10 or b<>20) の条件を満たす行が無くなってしまう
3) ゆえに、ルールで設定した 2個目のSQL、 tbl2 に対する update を実行しようとしたときには
  対象行がないため、その update は実行されない

のような感じらしいです。

これってこういうものなのでしょうか?
また、>>690 の update文で tbl1、tbl2 ともに期待通りに更新されるようにするには、どういうルールを
定義したらいいのでしょうか。

692NAME IS NULL:04/07/14 15:21 ID:???
むかしむかし、ブラウザの1画面(横1024ピクセル)が
全部、SQLでうまるぐらいのSQL文書いたことがあったなあ。

inner joinしまくりの、groupbyしまくり。
あれでSQLに関しては鍛えられたようなもんだ。
ああなつかしや。
693689:04/07/14 15:21 ID:???
あ、PostgreSQL のバージョンは 7.3 です。
すみませんが、ハマっててかなり苦戦してます。
アドバイスよろしくおねがいします。
694NAME IS NULL:04/07/14 16:55 ID:???
>>693
長いよー
3行くらいにまとめてくれたら読むけど
695NAME IS NULL:04/07/14 17:20 ID:???
>>694
早い話が、2つのテーブル(tbl1、tbl2)を繋いだビュー(testview)を作って、
testview への update を tbl1 と tbl2 の update に置き換えるルールを作ったら
その 2つに置き換えられ両方実行されるべき update が、片方しか実行されないケースがあるらしい

って話なんです・・・
696NAME IS NULL:04/07/14 17:41 ID:VCb6KB+k
postgres7.3を使用予定ですが、REINDEXの使用方法を教えてください。

REINDEX対象のテーブル名をpg_stat_user_tablesより
取得しながら、REINDEXを全テーブルに順番にかけるシェルを作ろうと思っています。
その際、pgbashを使用し、cronで自動実行を予定しています。

もしソースコードがわかれば教えて下さい。
またみなさんはどんな方法で、行っていますか?


697NAME IS NULL:04/07/14 20:08 ID:???
for vv in `psql -A -t -d test -c "select 'reindex table ' || relname from pg_stat_user_tables"`
do
psql -d test -c $vv
done
698NAME IS NULL:04/07/14 23:25 ID:myF1sKbE
postgresのDB運用時のチューニング&監視について教えて下さい。
常時、又は随時、運用で必要なチューニング&監視事項はどんな事があるのでしょうか?

またその為には、どのようにすればよいか、教えてください
699外から見たら:04/07/15 00:35 ID:5RtJ4z45
ちょいみんなにしつもーん。
世の中のグローバルな流れとして、主流はやっぱり3層モデルだと思うんです。
Oracle、Websphere、apacheみたいな。
でもPostgreSQLとかの利用形態をMLや出回っている書籍とかで見る限り、
PostgreSQL+apache(+PHPなりのCGI)みないな風潮が強いように
見受けられるんですが、現実はどうなんですかね?
SRAの石井さんとかPHPのコアメンバとかだけが言っている(書いている)
だけなんでしょうか?
700NAME IS NULL:04/07/15 01:56 ID:???
>>698
最低でもvacuumはcronでやるようにしておく。
チューニングは技術評論社の
「レベルアップ! PostgreSQL必須テクニックス」
(ソフトウェアデザインと同じサイズのムック?)
を買って読んでみたらいいと思う。

>>699
現実ってどういう意味?
実際に多く使われているシステム構成?

アプリケーションサーバを使ってシステムを作るのはあるけど、
オープンソースで軽いシステムを作るという場合はTomcatよりも
phpでというのは多いんじゃないかな?

単にそれだけじゃないかと思うけど?
701698の件:04/07/15 05:21 ID:6Q+6a9EK
質問の書き方が浅くてすいませんでした。
postgresの運用監視で、よく本に出てますが、
行単位のアクセス情報、I/O回数情報、キャッシュヒット率などありますが、
どのようなタイミングで取得していますか?
また、取得するのは、コマンドを投げて確認するか
スクリプトなど作成してファイルに保存などして監視してるのでしょうか?
教えて下さい。
702NAME IS NULL:04/07/15 12:56 ID:wW3qQGNK
PostgreSQLで「テーブル親」「テーブル子」「テーブル孫」があり、
データは親>子>孫という関係を持っている状態で
class OYA, class KO, class MAGO,の3つのクラスのオブジェクト配列で
管理したいと思ってるのですが、どのようなSQLを打って初期化させた方が
良いのでしょうか。
データの操作は「OYA->KO[x]->MAGO[y].data」のように扱いたいと思ってます。
今自分がやってる方法は、各階層ごとに初期化で一つ一つSQL打ってるので
凄く時間がかかるヘタレな状態になってます○| ̄|_
703NAME IS NULL:04/07/15 14:18 ID:???
外部キーでcascadeにして、親のテーブルtruncateじゃだめなのか?


ってか、言ってる事がよくわからん。スマソ
704NAME IS NULL:04/07/15 14:39 ID:???
>>703
レスありがとうです。・゚・(ノ□`)・゚・。
書いてる途中で自分でも言ってる意味がよく分からない文章になってしまいました。
class OYA{
 KO[]; //子のオブジェクト配列
 function Init( oya_code )
 {
  [親データ(oya_codeのレコード)の子の数を求めるSQLを打つ]
  while( 子の数だけ )
  {
    this->KO[i]->Init(ko_code);
  }
 }
}

class KO{
 MAGO[]; //孫のオブジェクト配列
 function Init( ko_code )
 {
  [子データ(ko_codeのレコード)の孫の数を求めるSQLを打つ]
  while( 孫の数だけ )
  {
    this->MAGO[i]->Init(mago_code);
  }
 }
}

class MAGO{
 data;
 function Init( mago_code )
 {
  [孫データを取得するSQLを打つ]
  this->data = 孫データ;
 }
}
という感じになってます>現状
これだと親*子*孫の数だけSQLを打つのでめちゃ遅くなってるので
なんとかしたいなぁと思っております。
705NAME IS NULL:04/07/15 16:11 ID:MTwUZrV7
こんにちは。libpqを使ってアプリケーションを作ってるのですが
insert文をPQexecで実行すると、PQcmdTuplesで帰ってくる結果が
どうやら空文字列になってしまいます。
select文では行列ちゃんとゲットできるのですがinsertだとうまくいきません。
同じSQL文をpsqlから実行するとOKなのでSQLの文法エラーではないと思うのですが・・・

理由に心当たりある方おられたらご助言ください。
706NAME IS NULL:04/07/15 16:24 ID:???
>>704
スマン、ご飯食ってた

親、子、孫のどのinitが呼ばれても、結局孫のデータが取りたいなら
親、子、孫(これは現状でおkか)それぞれで、孫データを取りに行けばいいんでないの?

--親で実行する
select
m.*
from
ko k ,
mago m
where
k.oya_code = m.oya_code and
k.ko_code = m.ko_code and
k.oya_code = 'hoge'
;


--子で実行する
select
m.*
from
mago m
where
m.oya_code = 'hoge' and
m.ko_coee = 'hoge_ko'
;


なんか意味取り違えてそうだなぁ、漏れ・・・
707703:04/07/15 16:33 ID:???
やっぱ勘違いしてた。
それぞれのレベルで、自分の直下のデータを配列で持ちつつ、その下のレベルのやつにも同じ事をさせたいんだな
708NAME IS NULL:04/07/15 16:50 ID:???
>>706
なるほどっ!ありがとうございました。
それでイケましたm(_ _)m
709699:04/07/16 01:17 ID:???
>>700
現実ってのはそんな意味で言いました。

自分、あまりオープンソースとかには今まで関わりがなかったもので、
漠に思った疑問です。PHPとかの世界も当然詳しくないんですが、
開発者数で言ったらスキルのムラはあるにしろ、絶対数では
Javaとかの方が多いのは事実だと思っています。それでも
その「軽いシステム」作るって言っても選択肢としてまずあがるのは
PHPなんですかね?って疑問。Javaだってオープンソース色が強いわけで。
700さんみたいな意見自体は良く聞きますが、証拠があると納得なんです。

710NAME IS NULL:04/07/16 10:12 ID:???
integer 型を 計算時にbigint 型として計算する方法はありますか?
テーブルのデータ型はinteger なのですが 計算時に桁あふれしてしまいます。
そこで、プログラミング言語にあるようなキャストして計算する方法が知りたいのです。
711NAME IS NULL:04/07/16 10:27 ID:???
>709
JavaとPHPの案件の総額の比較なんて出せっこないから、
結局は自分の周辺でしか語れないのは誰しも同じ。

コンサル系ならある程度の数字を持ってるかもしれないけど、
現場の人間は「自分を中心とする環境」の話しかできないと思う。

世の中の大規模案件の主流がJavaであることは事実だと思う。
ただ、PHPも小規模からスケールアップしてきてるのは間違いないと思われ。
712NAME IS NULL:04/07/16 12:24 ID:???
>>709
別に小規模な案件でもJavaってのはありでしょう。
PHP使いはPHPでやり、
Ruby使いはRubyでやる。
Perl房はPerlでやる。
マイクロソフト信者はASPでやる。
あとそれ以外にもパイソンだとか、じぇいぱいそんだとか、まあいろいろありますね。
それだけの話の気がします。
713NAME IS NULL:04/07/16 12:35 ID:???
javaだなんだと開発環境にこだわって価格面と釣り合わないからクライアントに
泣いてもらうってのだけはやめとけ
714NAME IS NULL:04/07/16 13:04 ID:???
>>713
同意
715ポスグレ@だ〜ぅいん:04/07/16 14:02 ID:DefsBpJs
>>712
禿同

>>713
禿同

結局は蔵が求めてる物を迅速かつ的確に提供するのがプロ
の仕事で、何を使うかは、人それぞれでよいのではないか?

まぁ、鰯さばくのに出刃包丁使うやつもいないだろうし。

716NAME IS NULL:04/07/16 15:37 ID:???
シーケンスかserialか、ユニークな連番を作成するときは
どちらを使用していますか?
717NAME IS NULL:04/07/16 16:11 ID:???
serial お手軽。
718675-676:04/07/16 19:08 ID:???
>>710
cast(データ as bigint)
でデータをbigint型と評価して計算してくれた。
マニュアル見て解決しますた。
719NAME IS NULL:04/07/16 20:26 ID:???
Fedorecore1にpostgreインストールしようとしてるんですけどmakeができません。
もうrpmでインストールしてしまおうと思うんですが、ver7のrpmって存在しますか?
googleで調べてもver.6のものしかでてこないんで・・・

申し訳ないですが教えてください。
720NAME IS NULL:04/07/16 20:30 ID:???
ftp.postgresql.org:/pub/binary/v7.4.3/fedora/fedora-core-1/
721719:04/07/16 23:39 ID:???
>>720
ありがとうございます。
おかげでインストールすることができました。
722素人:04/07/17 09:26 ID:8aEaGB1c
こんにちは。
libpqのPQexecでSQL文を実行したらステータスはPGRES_COMMAND_OK
だったのに結果がデータベースに反映されてません。
ちなみにINSERT文だったんですけどこんなことってあるんでしょうか・・・


723NAME IS NULL:04/07/17 09:32 ID:???
commitしる!
724NAME IS NULL:04/07/17 15:41 ID:???
>>722
postgresql.confを書き換えてSQLログを出力するようにして確認してごらん
725NAME IS NULL:04/07/17 20:39 ID:???
LAPP環境で、PHPアプリからのデータが、
Postgresの制約に引っかかったとき、
アプリ側(PHP)でどういう制約に引っかかったか、
コードのようなものを取得する事は出来ないでしょうか?

アプリ側で事前に値のチェックすればよいのですが、
ユニーク制約とかのチェックが大変で、アプリとDB両方でチェックしたいんです。
726NAME IS NULL:04/07/17 21:12 ID:R3KgZhhD
ホントに基本的なことで申し訳ない。

データベース内にどういうテーブルがあるか表示させて調べるコマンドって何だっけ?
データベース一覧を表示させる『psql -l』みたいなやつ。
データベース内になんて名前のテーブルがあったか見たいんだけど、ど忘れした。
727726:04/07/17 21:36 ID:R3KgZhhD
自己解決しました。
\dね
728NAME IS NULL:04/07/17 22:02 ID:???
\zとかも
729素人:04/07/18 12:27 ID:MAW15t4Y
>>723

コミットしてます・・・

>>724

postgreSQL.confの設定について詳しくわかるサイトか書籍がありましたら
教えてください・・・

ログチェックしたことないんで・・
730NAME IS NULL:04/07/18 12:46 ID:???
731NAME IS NULL:04/07/18 15:25 ID:???
レコードの存在するテーブルに後からインデックス付けることできますか?

7.3.4なんですけど・・
732NAME IS NULL:04/07/18 15:50 ID:???
>>731
create index
733NAME IS NULL:04/07/18 16:28 ID:???
ディスクスペースのグラフをとってるんですけど、
どんどん容量が増えて止まらない勢いなんですが、
これって vacuum full してないからなんでしょうか?

データ量自体はたいしてかわってないのですが、頻繁にUpdateをしています。
vacuum はしてみたのですが、vacuum full は時間がかかりロックもされる
そうなのでやったほうがいいのかどうか悩んでいます・・
734NAME IS NULL:04/07/18 17:55 ID:???
>>733
VACUUM FULLに何日もかかるわけじゃないから、
ひまな時間にやってみれば?
735NAME IS NULL:04/07/18 20:25 ID:YyHd/YHX
PHPのから、各オブジェクトのコメントを取りたいと思い、
調べたところ Postgres側の関数に
obj_description(OID)というものを見つけました。
テーブルおよびビューについては、システム表であるpg_class
を参照すればOIDを取れるのですが、ファンクションについては
わかりません・・・。

ファンクションの、OIDを得る方法ないでしょうか・・・
736NAME IS NULL:04/07/18 20:55 ID:???
>>733
頻繁にUPDATEしてるなら、VACUUM FULLしたほうが良いよ。
頻繁にVACUUMかければVACUUM FULL必要ないような事書かれてるけど、
UPDATEの頻度によっては絶大な効果(ディスクスペースの節約)を発揮するよ。

当然検索もかなり早くなるし。
どのぐらいデータがあるかわからないけど、
300万件ぐらいのレコードがあるテーブルが2、3個あっても、20分ぐらいで終わる。

しばらくやってないなら、1時間ぐらい掛かるかもしれないけど。
マシンのスペックに大きく左右されると思うけど、機会があるならぜひやってください。
737NAME IS NULL:04/07/18 21:30 ID:???
便乗だけど、vacuum full だけでなく、
たまに vacuum full analyze した方がいい?
738NAME IS NULL:04/07/19 02:19 ID:???
>>737
vacuum full analyze = vacuum full + analyze table
なんで、
analyze tableは別のタイミングでやってもいいんじゃない。
もちろん、いっしょにやっても文句はないけど。
739NAME IS NULL:04/07/19 13:26 ID:???
vacuum full する前に vacuum をしておくと
vacuum full が早く終わったりするんでしょうか?
740NAME IS NULL:04/07/19 13:33 ID:???
>>739

かわらない。
つうか、vacuum + vacuum full にかかる時間の合計は
vacuum fullの時間とおなじはず。
よってコマンド2つ入力するぶん、分けたほうが時間かかるかも。

741NAME IS NULL:04/07/19 14:18 ID:???
vacuum のよい勉強になった。ありがとうございました。
742NAME IS NULL:04/07/19 15:16 ID:???
GROUP BY 句で指定したカラムにインデックスがあれば
使われるのでしょうか?
743NAME IS NULL:04/07/19 17:09 ID:???
>>730
俺もそれ持ってる。実用性の面ではシーラカンス本を超えてると思う。
是非シリーズ化して新しいバージョンに対応していってもらいたい。
744NAME IS NULL:04/07/19 17:10 ID:???
>>733
>>データ量自体はたいしてかわってないのですが、頻繁にUpdateをしています。
>>vacuum はしてみたのですが、vacuum full は時間がかかりロックもされる
>>そうなのでやったほうがいいのかどうか悩んでいます・・

定期的にvacuumしておけば、頻繁にUPDATEしてもディスクスペースは(そんなに)増えないはずだが。
定期的にvacuumやってる?

vacuumはテーブルロックしないから、それこそ頻繁にvacuumしたほうがよい。特にUPDATE主体なら。
何故ならvacuumで、FSMにふるいUPDATE前のデータ領域を記録して再利用に備えるから。
vacuumしてFSMに無駄領域を記録すれば新しくUPDATEしたデータはFSMに記録された既にmallocされた領域に新たに書き込むだけで、ディスクスペースは増えないはずなんだが。
745NAME IS NULL:04/07/19 17:12 ID:???
>>734
シリーズって、改定版のこと?
746別スレ62:04/07/19 22:00 ID:???
文字列の場合、
 ・char
 ・varchar
 ・text
の違いがわかりません(><)
誰か教えてください。特に、charとtextの違い。
やっぱり、textの方がメモリを食うんですか?
747NAME IS NULL:04/07/19 22:19 ID:???
text は効率がよいとシーラカンス本に書いてあったような。
だけど varchar/char と比べてどう効率がよいか分からない。自分も知りたい。
748NAME IS NULL:04/07/20 02:05 ID:???
749別スレ62:04/07/20 12:17 ID:???
>>747-748
どうもです。
行って来ます。
750NAME IS NULL:04/07/21 10:02 ID:6c6QWKcM
つみきさんのCSEを使ってるのですが
-- hogehoge
のコメント行でエラーになってしまいます

CSE使ってる方、
スクリプトを一括で実行する場合など
コメント行はどうされてますか?
751素人729:04/07/21 10:08 ID:qnT+1deo
やっとログ出せたんですけど・・・意味不明です・・・
なんでだろう・・・
752NAME IS NULL:04/07/21 10:13 ID:Kk9QeGX1
like検索するとindexが使われないようなんですが
使われるようにする方法ってないでしょうか?

like 'hoge'
like '%hoge'
like 'hoge%'
like '%hoge%'

いずれのパターンでも使われません・・・
前方一致ならいけるような書き方がされていたんですが・・・。
PostgreSQL7.4.3です
753NAME IS NULL:04/07/21 10:47 ID:???
>>752
データ件数が少ないとか

>>750
あれ?
エラーになるね
754752:04/07/21 10:52 ID:Kk9QeGX1
>>753
データ件数は3万件ぐらいで
Seq Scan をfalseにしてます
755NAME IS NULL:04/07/21 11:00 ID:???
>752
データの傾向がわからんので何ともいえんのだが、それ以前に
initdb するとき、当然 --no-locale オプションは付けたよな
756NAME IS NULL:04/07/21 11:08 ID:???
>>754
前方一致でもヒットする件数が多い(とプランナに判断される)とIndex Scanしないよ。
どのぐらいで「多い」となるかはしらんけど、50万件で5000件ぐらい(1%)になるとSeq Scanになる。
そのまえに、 ANALYZEはやったのか?
757752:04/07/21 11:41 ID:Kk9QeGX1
>>755
つけてないっす・・・バックアップとってinitdbやりなおし?

>>756
vacuumdb -a -z
でやってます
758NAME IS NULL:04/07/21 12:16 ID:???
やりなおし!
759NAME IS NULL:04/07/21 14:10 ID:Qw9AxyzJ
postmasterをデバッグモードで起動する方法ってあります?
どんな処理が行われているかリアルタイムで見たいんだけど….
起動時に何かオプションでつけるような形でないかなぁ.
760NAME IS NULL:04/07/21 14:27 ID:???
やりたいことがよく分からんのだが、postmasterの話であれば、
PostmasterMain()から追っていけばそんなに難しいことはしてない。

postgresバックエンドという意味なら、
デバッグメッセージのオプションを最強にすれば?
761752:04/07/21 14:29 ID:???
>>758
そうですか…ありがとうございました・・・orz
762素人729:04/07/21 16:18 ID:qnT+1deo
orz・・・・・

ちなみに¥zでパーミッションの設定を表示させたとき
空白ってのは設定されてないってことですか?
763NAME IS NULL:04/07/21 16:25 ID:???
>>762
Access privileges の事?
空白の場合、作成したUser以外はアクセスできまへん。
764NAME IS NULL:04/07/21 20:17 ID:???
text型の中身が数字だけかどうかを知りたいのですが、どうしたらいいですか?
765NAME IS NULL:04/07/21 20:58 ID:???
>>764
正規表現を使う。
WHERE text_column ~ '^[0-9]+$';
766NAME IS NULL:04/07/21 21:19 ID:???
>>765
できました。ありがとうございます。
767素人729:04/07/22 10:17 ID:8ebWOJ5q
すんません
libpqのトレース関数のtrace.outの読み方を教えてください。
QとかDとかCとかZとかPとか出てるんです。
768NAME IS NULL:04/07/22 20:46 ID:???
>>767
プロトコルのドキュメントが日本のサイトにおいてあったはず
769素人729:04/07/22 21:28 ID:8ebWOJ5q

http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/protocol.html

ですよね・・・一通り読んだんですけど・・・・まだわかんないっス・・・

trace.outの内容、こんな感じなんですよ・・・

To backend> Q
To backend> BEGIN
From backend> C
From backend> "BIGIN"
From backend> Z
From backend> Z
To backend> Q

〜省略〜

From backend> Z
From backend> Z
770NAME IS NULL:04/07/23 02:02 ID:???
手続き言語のPL/pgSQLを使いたくて、次のように書いたのですが、

postgres=#create function ttt (int4) returns int4 as 'select 1;' language 'plpgsql';
ERROR: language "plpgsql" does not exist
HINT: You need to use "createlang" to load the language into the database.

このようなエラーが出たので、createlangをしたら良いのかな?と思ったのですが、

postgres=# createlang plpgsql postgres;
ERROR: syntax error at or near "createlang" at character 1

とエラーが出てしまいます。
このエラーの解決法を教えてもらえないでしょうか?
771NAME IS NULL:04/07/23 10:16 ID:???
SQLじゃあないので。
772NAME IS NULL:04/07/23 12:22 ID:???
あんまりほのめかしは好きでないので補足してあげます。
createlangしてあげれば良いのは正解。
createlangはSQLの"CREATE LANGUAGE"のラッパースクリプト。
なので実行する場面が違う。
773NAME IS NULL:04/07/23 13:13 ID:xOlTaBY/
insert/deleteを繰り返していると数万件で負荷率がどどーんと上がる。
vacuumすると負荷がわずかに下がるけどすぐにまた上がる。
一度dropdbしてからcreatedbしてバックアップから復旧させると
負荷が10分の一以下に下がるけど、何なのよ。
フラグメンテーションか何か?
774NAME IS NULL:04/07/23 14:06 ID:???
>>773
REINDEX してみればどぉよ。
775NAME IS NULL:04/07/23 14:17 ID:9zzyRUIL
Postgresql8.0はいつでますか?
776770:04/07/23 15:46 ID:???
>>772
どこで実行すればいいんですか?
777NAME IS NULL:04/07/23 15:57 ID:???
>>772の内容でも、ほのめかしと捉えられちゃったみたいで。
かわいそう。
778NAME IS NULL:04/07/23 23:06 ID:7e1rvO9Z
/usr/local/bin/psql -U pgsql
したら、
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
と怒られたのですが、
いつも、こういうときは/tmp/.s.PGSQL.5432を消してたのですが、
どうもみあたりません。
どうすればいいのでしょうか?
779NAME IS NULL:04/07/24 00:09 ID:???
ちなみに、レンタルサーバ(VPS)なんですが、
ウェブがみれない障害があったばかりで、
自分としては、何もいじってなくきゅうにこうなったんですよね・・・
これは、業者がなんかしちゃったって考えるほうが妥当でしょうか?

ちなみに業者が用意してる
「PostgreSQL サーバの起動」なるシェルスクリプトを実行すると、
うんともすんともいいません。。。

なお、postgresql.conf の tcpip_socket を trueとか、pg_hba.conf はちゃんと設定してます。
というか、設定をずっと変えてないのに、急にDBが起動しなくなったので。
780素人729:04/07/24 13:37 ID:9AGwIT5R
うぎゃあああ!!!わかんねええ!!!
781素人729:04/07/24 13:44 ID:9AGwIT5R
・・・私 素人729は発狂したもののバックアップ脳が時折 連結し
こうして一時的に我に返るときがある・・・

私は その機をとらえ PQexecの解析をおこなってきた。

ログからは何も読み取れなかったがトランザクションブロックが
なくなるとinsertされることがわかった。

しかし なぜそのようなことが成立するのかは
私がトランザクションブロックを理解するまで待たなくてはならない

あるいはその点にこそ長年のテーマであるカルマからの突破口があるような気がする。


782778-779:04/07/24 14:11 ID:???
業者のせいだったよママン。。。
783NAME IS NULL:04/07/24 14:23 ID:NvJGEXdI
PostgreSQLヲタの人はソースコード読んでますか?
784素人729:04/07/24 15:00 ID:9AGwIT5R
もしかして7.0以上だとWAL機能あるからBIGIN,COMITしなくていいのですか?
785NAME IS NULL:04/07/24 18:49 ID:???
autocommitがONの場合は、BEGIN/COMMITをしなければ、
自動的に1ステートメントが1トランザクションになる。
786NAME IS NULL:04/07/25 15:42 ID:7L2f00Ay
ポゑrgレssのwin版でpostmasterをpg_ctlをつかわずに
linux版にkil -INT pidみたいにして停止させたいんですがどうしたらといでしょう?
787NAME IS NULL:04/07/25 15:54 ID:7L2f00Ay
>>786
powergressです
788NAME IS NULL:04/07/25 18:26 ID:???
ポゑrgレssって素敵やん?
789NAME IS NULL:04/07/25 18:41 ID:dnIKDCBb
フリーなCygwinを使わない
Windowsネイティブ版PostgreSQLってのは存在するのでしょうか?
だいぶと前にそれらしきHPを発見したのですが閉鎖されてました
どなたか教えていただけないでしょうか?
790NAME IS NULL:04/07/25 19:26 ID:???
>>789
7.5 に期待しる。
791NAME IS NULL:04/07/25 21:04 ID:???
792NAME IS NULL:04/07/25 23:54 ID:???
793NAME IS NULL:04/07/26 04:38 ID:Z90//0kw
#createdb -E EUC_JP -U hogeuser hogedb
WARNING: could not write block 279 of 17142/103742
DETAIL: Multiple failures --- write error may be permanent.
createdb: database creation failed: ERROR: could not write block 279 of 17142/103742 blind: Input/output error
CONTEXT: writing block 279 of relation 17142/103742

何回やってもインストールし直しても上記のエラーでDBが作れません
どうしたらいいでしょうか?
794793:04/07/26 05:22 ID:Z90//0kw
環境書き忘れました
Redhat9のPostgresql7.4.2と7.4.3で試したけど
だめですた。

一度インストールして動作してたのを再インストールし直した後に
こういう状態になってしまいました。
何か解決策とかヒントとかわかる人がいたら教えてください
795NAME IS NULL:04/07/26 20:30 ID:???
timestamp型の列に対して

select * from hoge where YMD > '2004/07/27' - timestamp '7days';

と書くと

ERROR: invalid input syntax for type timestamp: "7days"

と怒られます。何がだめなんでしょうか?
最新1週間のデータが取りたいんですけど・・・。
796675-676:04/07/26 22:23 ID:???
>>795
select * from hoge where YMD > '2004/07/27' - interval '7days';
797795:04/07/26 22:35 ID:???
>>796
レスどうもです。

今度は
ERROR: invalid input syntax for type interval: "2004/07/27"
って怒られます。
798NAME IS NULL:04/07/27 01:00 ID:???
>>793
ディスクかファイルシステムが壊れたんじゃない?
799793:04/07/27 01:06 ID:???
>>798
そっちのほうの問題ですかねー
レスありがとうございましたー
800NAME IS NULL:04/07/27 12:41 ID:KZ6Yety6
group by 句で抽出した中のさらに1つのカラム値別のカウントってできますか?
以下のようなイメージなんですが、無理なんでしょうか?

SELECT NAME, count(CLM=1), count(CLM=2) FROM TABLE_A GROUP BY NAME;
801NAME IS NULL:04/07/27 14:08 ID:???
>>800
もっと利口な方法があるかもしれんが、とりあえず。
SELECT NAME, count(CASE WHEN CLM=1 THEN 1 END), count(CASE WHEN CLM=2 THEN 1 END) FROM TABLE_A GROUP BY NAME;
で、出来ます。
802800:04/07/27 15:46 ID:???
>>801

『でっ、 弟子にしてください!』

できました。 ありがとうございました。
803NAME IS NULL:04/07/27 15:49 ID:???
SRA、「PostgreSQL 技術者認定制度」の開始を発表
ttp://www.itmedia.co.jp/enterprise/articles/0407/27/news026.html
804NAME IS NULL:04/07/27 16:09 ID:???
ユニークな識別番号を持つ二つのレコード間で識別番号の入れ替えを
するのに何か有効な方法がございましたら教えて頂けますと助かります。
考えたものでは、一度、最大数近い識別番号でupdateしてそれから入れ替えようと
思ったのですが、危なげなので何か良い手法がありましたら教えてくださいm(_ _)m
805NAME IS NULL:04/07/27 16:40 ID:???
それでいいんじゃない?
不安ならユニーク値カラム以外を総入れ換えで最初のupdateを省く。
806NAME IS NULL:04/07/27 17:15 ID:???
UNIQUE制約がなければ
UPDATE table SET id=(CASE id WHEN '1' THEN '3' WHEN '3' THEN '1' END) WHERE id='1' OR id='3';
で出来るのだが。
UNIQUE制約は参照整合性制約みたいに遅延が出来ないっすよね。
807804:04/07/27 17:31 ID:???
お二方様、お忙しいところご回答頂きありがとうございます。
ユニーク制約がなければそういうテクもあるのですね〜。
ありがとうございましたm(_ _)m
808NAME IS NULL:04/07/27 18:13 ID:???
>>803 名前:NAME IS NULL :04/07/27 15:49 ID:???
>> SRA、「PostgreSQL 技術者認定制度」の開始を発表
>> ttp://www.itmedia.co.jp/enterprise/articles/0407/27/news026.html

すげー、これで大企業にもPostgreSQLを奨められるよ。
なにしろSRAのお墨付き技術者がSIすれば誰だって納得するし、
資格持ったDB技術者も勝ち組になれる....




はずねえよな、胴元がSRAだもん。ぜんぜん価値を見出せん。
809NAME IS NULL:04/07/28 16:11 ID:Q/KyXOtW
すみませんが、教えてください。

PostgreSQLの7.4.1を使ってます。
で、あるテーブルに「tel」ってフィールドがあって、その中には
電話番号がハイフン付きで入ってます。

03-1234-5678 なかんじで。

で、これをハイフンなしの値で検索したいんです。
例えば、0312345678で検索して、上のハイフン付きのやつがヒットしてほしい

なにか方法があったら教えてください。

810NAME IS NULL:04/07/28 16:52 ID:dyXhYYQi
>809
translate()で`-'を削除した結果と、値を比較すれば?

SELECT * FROM table WHERE translate(tel, '-', '') LIKE '0312345678';
811NAME IS NULL:04/07/28 16:53 ID:???
>>809
SELECT * FROM table WHERE translate(tel,'-','')='0312345678';
812NAME IS NULL:04/07/28 16:54 ID:???
あらかぶった(´・ω・`)
813NAME IS NULL:04/07/28 17:00 ID:???
>>809
LIKEでいけそうな気もするが・・・
translate()を使うとこうかな?
SELECT * FROM tbl WHERE translate(tel, '-', '') = '0312345678';
814809:04/07/28 17:02 ID:???
>>810-811
解決しました。
あ、ありがとうございました。m(_ _)m
815NAME IS NULL:04/07/29 02:06 ID:???
>>808
禿げ胴、なぁーーんで、SRAなんかに認めてもらわんといかんのだ。
大体、PostgreSQLやるのに、SRA全然関係無いし。

PostgreSQLはオプソだっつーのに、、、勘違いしてないか、この会社?
ユーザ会が仕切るならまだしも・・・
他のオプソでこんな馬鹿げたのある?
816NAME IS NULL:04/07/29 02:54 ID:???
>>815
他に適当なところがあるのか?んー、なんならお前やってみるか?
817NAME IS NULL:04/07/29 02:55 ID:???
>>815
RHCE
ディストリビューションをどう捉えるかによりますが、linuxもオープンソースってことで
818NAME IS NULL:04/07/29 08:48 ID:???
>>816
SRAシャイーーン、わざわざお疲れ!

他に適当なとこ?「ユーザ会」って書いてあるじゃねーか。
アフォ?全く、日本語不自由してそうだな。
819NAME IS NULL:04/07/29 09:11 ID:???
SRA石○氏をはじめとする関係者たちは
シーラカンス本やユーザ会設立で普及に大きな役割を果たしたが
まともな技術情報を流さなかったのも事実

SRAでコンサルするためわざと重要情報を隠していた疑惑もある
WALやVACUUMなどPostgreSQL運用の鬼門情報が
シーラカンス本や雑誌を含めまったく出なかった
今もまともな情報も書籍もない
日本語がおかしい翻訳ドキュメントと
あいかわらず散慢に書き散らしたシーラカンス本があるだけ

こんな状態で今度は資格試験といわれても
まずはまともな情報を流せ
話はそれからだ

こんな感じか? > 815
820NAME IS NULL:04/07/29 09:14 ID:???
ユーザ会だって企業の息かかってるじゃん。
821NAME IS NULL:04/07/29 09:20 ID:???
>>817

Linuxはカーネルだけね。
RedHatはディストリビューションをきっちりつくってるしLinux普及の立役者。
RedHat社員がLinuxカーネルをだいぶ作ってるし。最近はIBMも多いが。
2.0とか2.2あたりの普及時期はまちがいなくRedHatがあったからLinuxが進歩し普及した。
AlanCoxがRedhat社員だったのは知ってるだろ。


かたやSRAはPostgreSQLのドキュメント翻訳とブルースをコンサルで雇ってるくらい。
822NAME IS NULL:04/07/29 09:27 ID:???
>>820
ある分科会はミカカdxtxが仕切ってる。
ミーティングが平日の3時からなんて、
おまいら、給料もらって身内どうしで
発表会ひらいてんじゃねえってな感じ。
823NAME IS NULL:04/07/29 10:05 ID:???
>>820
SRAなんかより、ずっとマシ。
824NAME IS NULL:04/07/29 10:19 ID:???
というか、SRA、そんな技術持ってないよ。
資格を出す資格が無いというか。

付き合ってみればわかるよ、あんまり解ってない。

825NAME IS NULL:04/07/29 10:56 ID:???
>>819
ソース公開されているのに「重要情報を隠している」ってどういうこと?
826NAME IS NULL:04/07/29 11:09 ID:???
俺はMySQLに乗り換えたよ。
827NAME IS NULL:04/07/29 11:56 ID:???
>>819
技術評論社のPostgreSQLリファレンスではWALが詳細に解説されてるね。
828NAME IS NULL:04/07/29 12:19 ID:???
FreeBSDの資格試験があったらいいなぁ
829NAME IS NULL:04/07/29 14:24 ID:???
>>825
『ソースよめばなんでもわかる』とか言ってる素人は、
素人(本業医者)の文章読んでから出直しといで。
http://www.wnishida.com/~wmemo/?date=20040701
http://www.wnishida.com/~wmemo/?date=20040706
http://www.wnishida.com/~wmemo/?date=20040713

>>827
あの著者知ってるけど、実はA×Eのハッカーなんだよね。SRAじゃない。
カーネルもXもばりばりの人で、
余興でソース読みながらリファレンス本書いたって言ってたけど、
普通のエンジニアには絶対無理。
830NAME IS NULL:04/07/29 14:50 ID:???
そもそも、石井氏もシーラカンス本でも、紹介文、ユーザー会会員と書かれているが、
SRAなんて一言も書かれていない。

SRAだから石井氏が何かやってくれるわけでもない。
831NAME IS NULL:04/07/29 15:27 ID:???
>>827
>>819 だけには重要情報が隠されてたんだろ
インストールの仕方とかそういう重要情報が。
832NAME IS NULL:04/07/29 15:52 ID:???
香ばしくなってまいりましたが、
おまいら、資格とりますか?
833NAME IS NULL:04/07/29 16:01 ID:???
PostgreSQL CE 7.5 Platinumを取得する予定でつ
834NAME IS NULL:04/07/29 16:18 ID:???
読解力のない奴ハケーン > 831

WALやVACUUMなどPostgreSQL運用の鬼門情報が
シーラカンス本や雑誌を含めまったく出なかった
835NAME IS NULL:04/07/29 16:31 ID:???
鬼門ってなによ?中心を誤魔化してバッシングするなよ。
836NAME IS NULL:04/07/29 16:37 ID:???
>>835
熱くならずに、ググれ。
837NAME IS NULL:04/07/29 16:48 ID:???
>>832
いらねー
838NAME IS NULL:04/07/29 16:54 ID:???
ユーザ会等になんの断りもなくSRAが認定制度を設けるのには疑問を感じるが、
認定制度そのものには賛成かな。現状のユーザ会では認定制度の実施運営は
難しいかと。ユーザ会の法人化も検討されているようだが。

ってことで、漏れは取るかも。
839NAME IS NULL:04/07/29 17:01 ID:???
取れねぇよ。
840NAME IS NULL:04/07/29 17:17 ID:???
>>829
Linux のカーネルと PostgreSQL のソース読んだことないでしょ。
841NAME IS NULL:04/07/29 17:19 ID:???
>>840
開いて見ただけで、ナニ自慢げに書いてんだ?(ワラ
842NAME IS NULL:04/07/29 17:37 ID:???
>>836
ググったほうがいいのは834の方だとおもわれ。

>>819
>SRAでコンサルするためわざと重要情報を隠していた疑惑もある
SRAごときが各方面に圧力でもかけて情報を
出て来ないようにしたとでも思ってるの?

>日本語がおかしい翻訳ドキュメントと
>あいかわらず散慢に書き散らしたシーラカンス本があるだけ
それがSRAと何か関係あるの?

っつーか自分がPostgreSQLわかんないのをSRAの責任に
したいようにしか見えないんですけど、、、
843NAME IS NULL:04/07/29 17:40 ID:???
なんだかSRAの社員がヒッシなようにしか見えないんですけど。

心配しなくても、殆どの人間がそんな資格など取らない。
844NAME IS NULL:04/07/29 18:02 ID:???
資格というものは需要があって初めてビジネスになります。
この場合の需要とは資格を取る側ではなく、資格を求める側のことをいいます。
よって、PosgreSQLの構築やそれを用いたシステム開発を外部委託する企業が
今後ますます増えていくことがビジネスを成功させるカギとなります。
SRAにはなお一層の普及活動への注力に期待します。
845NAME IS NULL:04/07/29 18:05 ID:???
>>843
心配しなくても、お前のような人間にはこの資格は取れない。
846NAME IS NULL:04/07/29 18:08 ID:???
取らない
847NAME IS NULL:04/07/29 18:09 ID:???
取れない
848NAME IS NULL:04/07/29 18:10 ID:???
以後、ループ
849NAME IS NULL:04/07/29 18:12 ID:???
取れば
850NAME IS NULL:04/07/29 18:14 ID:???
この資格に技術者が殺到するとは思えんなぁ。
ちなみにワシはオラクルシルバー止まり。
851NAME IS NULL:04/07/29 18:15 ID:???
ポスグレプラチナなんてあるとかっこいいね。
852NAME IS NULL:04/07/29 18:17 ID:???
まあ、認定取得費用が法外なふっかけでない限り応援するよ。
853NAME IS NULL:04/07/29 18:27 ID:???
>>845
 ↑
こんな書き込みするような会社にどうして金払う?
854NAME IS NULL:04/07/29 18:51 ID:???
>>852
13000円ってかいてあるぞ
855NAME IS NULL:04/07/29 19:13 ID:???
RHCE → REDHAT Linuxに対する資格 → RedHat社が認定
シスコ技術者認定 → シスコ製品に対する資格 → シスコシステムズ社が認定
TurboCE → TurboLinuxに対する資格 → TurboLinux社が認定
MSCE → Microsoft製品に対する資格 → Mircosoft社が認定
(以下略)

PostgreSQL CE → PostgreSQLに対する資格 → SRAが認定・・・・・・・・何故?意味不明
856NAME IS NULL:04/07/29 21:21 ID:???
>>855
PostgreSQL の開発者を考えてみろよ。
分からなければ本家の ML を読め。
857NAME IS NULL:04/07/29 21:34 ID:???
>>856
はぁ?石井だけじゃないか。アホか。
>>830

おまえが開発したか?ん?
858NAME IS NULL:04/07/29 22:55 ID:???
>>856
確かに石井さんは開発者だが、多バイトコード関連が主。
DBの根本部分には関係していないはず。

ま、なんだ、
例えばOpenOfficeの日本語化をやったAさんの所属するBという会社が、
OpenOffice認定資格試験をはじめたらどう思うね。
859NAME IS NULL:04/07/29 23:07 ID:???
>>857
Bruce Momjian と SRA の関係をご存知でない?
ttp://itpro.nikkeibp.co.jp/free/NOS/NETCOM/20030207/1/

つーか、PostgreSQL のソースの美しさ、まじで知らんのか。

もしかして君たちは SRA に劣っている SI 屋?
860NAME IS NULL:04/07/29 23:48 ID:???
>>859

嘘ばかりの日経の記事などどうでも良い。
コアメンバーが一人くらいいたところでその会社のものではなかろう。
861NAME IS NULL:04/07/29 23:49 ID:???
>>859
でー、このひとが問題考えてくれんのー?(w

なんともわざわざ引っ張り出すのに、臭いというかショーモナーいネタだな。
金払って来日してもらっただけという幹事。

おまえよりかは、絶対、マシだよ。SRA社員さん。
862NAME IS NULL:04/07/29 23:59 ID:???
というか、>>859 みたいなのに、認定していらんわ。
絶対要らないSRA認定資格。
863NAME IS NULL:04/07/29 23:59 ID:???
>>861

859がSRA社員ぽいんですけど。
864NAME IS NULL:04/07/30 00:04 ID:???
SRA社員であるおまえよりマシだよ、という意味かと。
865NAME IS NULL:04/07/30 00:08 ID:???
RHCE → RedHat社が認定 → RedHatの製品だから
って考えれば
PostgreSQL CE → SRAが認定 → SRAの製品(Powergres)だから
って考えられなくもない。
つーか結局のところPostgreSQLなんてマイナーだから
世界でもSRAくらいしかやるところがないっつーことじゃないの?
あと富士通か。
RedHatだってPostgreSQL見捨てたんじゃなかったっけ。

あとユーザ会がやれとかいってるやつはアホすぎ。
あそこはそんなパワーないっつーの。で、海外ではもっと人気無いし。
866NAME IS NULL:04/07/30 00:10 ID:???
>>859
たった3行のレスなのに、そのつながりがまったくわからんw

で、マジな話、あのソースがそんなに美しいか?どこを読んだんだ?
867NAME IS NULL:04/07/30 00:21 ID:???
>>866
SRAに資格認定する資格があるかどうかと、
PostgreSQLのソースが美しいかどうかはまったく関係ありません。

859のミスリード(手品の意味)なんでスルーしませう。
868NAME IS NULL:04/07/30 00:22 ID:???
SRA必死だな(w
869NAME IS NULL:04/07/30 00:26 ID:???
>>865
じゃぁ、Powergres CE だろが。
大体、Powergres自体もどうかと思うが。

パワー云々以前に、資格認定できる資格の有り無しだろ。
SRAにPowerあるとも思えん。

数回やって受験者スクナー、やんぴ、ってのも見えるが。
まぁ、せいぜい頑張りなよ。ユーザ舐めちゃいかんよ。
870NAME IS NULL:04/07/30 00:37 ID:???
SRA にジェラシーを感じる厨が集まるスレはここですか
871NAME IS NULL:04/07/30 00:37 ID:???
で、何の話だったっけ?
872NAME IS NULL:04/07/30 00:38 ID:???
RHCEとかTurboCEとか持ってるから雇った/雇われた人材っているの?

RHCEとかTurboCEとか持ってる人間が担当してますから、
このシステムは万全です、とか客にいっちゃうの?
客からすると、RHCEとかTurboCEなんてどうでもいいんちゃうの?

儲けてるんはRedHatだけなんじゃないの。


それみて資格ビジネスはじめたんじゃないんか > SRA
873NAME IS NULL:04/07/30 00:45 ID:???
SRAがしゃしゃりでてきたんで、
PostgreSQLに興味なくなっちゃったよーー。

MySQLにすっかなあ。
874NAME IS NULL:04/07/30 00:50 ID:???
>>870
頭の悪そうなSRA社員だな。ひっこんでな。

なんだか、いっぱいでてきてない?
ありありと社員とわかる、あほなカキコがどうしてできるのかと。
余計心証を害すると思う。
875NAME IS NULL:04/07/30 01:02 ID:???
>>874はSRAをクビになった
876NAME IS NULL:04/07/30 01:05 ID:???
PostgreSQLの資格など、どうでも良い。
問題は秋の情報処理試験だ。
877NAME IS NULL:04/07/30 01:17 ID:???
妄想癖のある 874 に誰か医者を紹介してあげてください
878NAME IS NULL:04/07/30 01:22 ID:???
こんな問題多そうな資格イラネ。
879NAME IS NULL:04/07/30 01:24 ID:???
で、取ったほうがいい資格って何だろうねぇ。
Oracleもシルバーとかでも取っといた方がいいのかな。
Linux方面ならLPICとか?
880NAME IS NULL:04/07/30 01:31 ID:???
>>879
オラクルマスターか、テクニカルエンジニア(データベース)だろうね。
PostgreSQLで、しかもSRAなんていう会社が認定した資格なんて認知してもらえないだろし。
881NAME IS NULL:04/07/30 09:46 ID:???
PostgreSQL の資格をするのに適した所はほかにどこがあるだろう。
NTT、富士通とかも PostgreSQL やってるけど。

# SRA は日本語化(マルチバイト化)以外に
# Windows のネイティブ化の貢献や、PGCluster とかもあるね。
882NAME IS NULL:04/07/30 09:52 ID:???
Bruce のことを「コアメンバーが一人くらい」という
>>860
みたいな人だけが SRA による PostgreSQL の資格化に反対している、ということですか?
883NAME IS NULL:04/07/30 10:17 ID:jCJzG4jl
漏れも非常に抵抗を感じるね。
SRAなんてのがやるぐらいなら、資格としての価値が無い。
884NAME IS NULL:04/07/30 10:30 ID:???
>>881

> Windows のネイティブ化の貢献
これはがんばってねってことで。たとえ
Powergresつくるための副産物だったとしても。

> PGCluster
これはあくまで独自拡張ってことで。
PostgreSQLに組み込まれないかぎり、貢献とはいえないなあ。

>>882
Bruceが中心人物ってのは動かしようが無い事実だが、BruceとSRAの関係がね。
Bruceを外部コンサルとして雇ってるってのが微妙。
完全に雇用してPostgreSQL部門なんぞつくるくらいの
関係なら誰も文句をいわないと思うが。

Bruceひとりコンサル契約して、
マルチバイト化した社員がひとりいるくらいで
資格を認定しようなんてのが、反感を買うわけだ。
885NAME IS NULL:04/07/30 10:31 ID:???
>>881
Windowsネイティブって商用版じゃん
意味ねーよ
886NAME IS NULL:04/07/30 10:39 ID:???
PGCluster、これ個人的な活動じゃないの?
石井氏の活動自体も、個人的。

大体、他にいないじゃないか。
技術も無いのに、認定する資格なんてないだろ。
887NAME IS NULL:04/07/30 11:31 ID:???
>>884-886
7.5 に取り込まれているよ。
PGCluster だって本家知ってるんだよ?

なんか PostgreSQL も SRA も知らないで叩いてるだけだろ?
888NAME IS NULL:04/07/30 11:42 ID:???
>>887
だから、それは個人的にやってることだろ?
会社としてやってない。
オマエこそ、会社が何やってるか理解してないんじゃない?(w
大体、取り込まれるって、contrib入りするぐらいだろうし。
「問題」の中にも含めれないんじゃないか。

ってか、こういう書き方されるとマジで抵抗感じる。
889NAME IS NULL:04/07/30 12:04 ID:???
>>888
| ってか、こういう書き方されるとマジで抵抗感じる。
SRA の資格云々は単なる感情論ですか。

石井氏の PostgreSQL の commit だって SRA として、
じゃないよ?ほかの多くの開発者も。

会社に個人が属し、その技術はフィードバックされることも理解できないんですか?
890NAME IS NULL:04/07/30 12:15 ID:???
全然フィードバックなんてされてるように見えないけど。

まー、全ては結果に現れるだろう。
せいぜい頑張ってね。
891NAME IS NULL:04/07/30 12:41 ID:???
>>887

PGClusterはcontrib程度だし、とてもつかいものになるレベルではない。
892NAME IS NULL:04/07/30 12:42 ID:???
>>890
なんだ。やっぱ憶測で物を言ってたんだ。
SRA にだしぬかれた SI 屋かと思ったけど学生君?
893NAME IS NULL:04/07/30 12:43 ID:???
>>887

もっというと、クラスタリングちゅうか、レプリケーションソフトは
これ以外にもいくつもある。少なくとも本流ではない。


894NAME IS NULL:04/07/30 12:51 ID:???
>>892
何トンチンカンなこと言ってんだ?
何が憶測なんだ?

当然の如く煽られて、馬鹿なこと書いてるより、しっかり問題考えてろ。
895NAME IS NULL:04/07/30 12:57 ID:???
脳内妄想の激しい奴だな892は。 
独り言と化しているし放置が一番。
896NAME IS NULL:04/07/30 12:58 ID:???
SRA社員のみなさん、質問です。
7.5ではバッファ管理アルゴリズムがかなり改良されたようですが、
どんな改良で、どんな効果があるのでしょうか。

資格認定やるんだから、このくらいすぱっと答えられますよね。
897NAME IS NULL:04/07/30 13:35 ID:huBSuvwC
ARCのことか?それは社員じゃなくてもわかるんじゃないか、、、
898NAME IS NULL:04/07/30 13:41 ID:???
>>897

いや、だから社員に答えて欲しいわけだよ、君。
899NAME IS NULL:04/07/30 13:46 ID:???
>>897
「SRA社員だけがわかる」なんてもんは無いだろ(プ

というか、この資格、SRA社員バカーリになりそうな悪寒。
900897:04/07/30 13:52 ID:huBSuvwC
俺は何度か書きこむたびに社員とか指摘されたけど、実際社員なんてここ見てナイと思う
まあ信じるかどうかは勝手だけどね

#アク禁うぜー
901NAME IS NULL:04/07/30 13:56 ID:???
>>896
SRA 社員による新バッファの仕組み

第5回勉強会
http://www.postgresql.jp/WG/shikumi/index.php3
902NAME IS NULL:04/07/30 14:07 ID:???
SRA必死杉。

SRA社内からのSquid Proxyはアク菌だろ。
903896:04/07/30 14:23 ID:???
>>901
やっぱり、それみつけたか。
904NAME IS NULL:04/07/30 14:35 ID:???
つまり、896は釣りに失敗したと
905896:04/07/30 15:05 ID:???
>>904
ある意味ね。

まあ、SRAといってもなんかやってる連中もいれば、へたれもいる。
PostgreSQLのなかをのぞいたり、改造しているのもたしかにいるが、
そういう連中は資格認定とかセミナーとかには絡まないよ、普通。

つまり、SRAに所属しているPostgreSQLがらみの個人と、
SRAそのものと資格ビジネス、これらを混同して話をしてもどうしようもない、と。

で、
資格ビジネスに注目すると、
SRAはまだそれをはじめるだけの土台つくりができていないんじゃないか、
と思っている。個人的な意見として。

まず、エンジニアに対してはもっときっちりしたテキストを作って教育すべき。
セミナーやってるといっても、やはり自習用のきちんとしたテキストは必要。
また、PostgreSQLを導入しようとしているユーザに対しては、
きちんとした啓蒙が必要。

世間一般のユーザ(顧客企業)はPostgreSQL=オープンソース=無料
くらいの認識しかない。
PostgreSQLの利点と欠点を明らかにし、ソフトは無料だが、
運用にはそれなりのコストとスキルが必要ってのを訴えてもらわんと。

なぜ、訴えることが必要かというと、PostgreSQLでビジネスをする
エンジニア=SI会社が儲かる道筋が必要だから。

これで顧客もSI会社もWin-Win、結果としてSRAもPostgreSQLもWin-Win。


こういう下準備のもとに、資格試験があるんじゃないの?
いまんとこ、SRAが資格試験で世間的認知度を上げ、
エンジニアから試験料金をぶんどるとこまでしかみえない。SRAのみ甘い汁。

顧客企業も資格を取るエンジニアも、どっちにもメリットが感じられないんだよ。
そこが一番の欠点なんじゃないのかね。

906NAME IS NULL:04/07/30 15:32 ID:???
資格そのものはともかく、これで試験対策用の
テキストが増えてくれるんじゃないかと
期待してます。
和訳ドキュメントやシーラカンス本とは
違う切り口の本があればいいな
907NAME IS NULL:04/07/30 15:42 ID:???
>>906
増えるかな? > 試験対策テキスト
ちと疑問。
908NAME IS NULL:04/07/30 16:49 ID:???
>>907
それはSRAが出すべきでしょ。少なくとも認定にパスできる学習環境はオープン
にしておくべき。そうじゃなかったら、認定を餌にセミナーで儲けてるなんて
言われてもしょうがない。
909NAME IS NULL:04/07/30 18:21 ID:???
>>908
認定を餌に
教本、問題集で儲けるってこと。
もちろんセミナーでもね。
悪い?
だからがんばって宣伝しないと。こういうとこで。
910NAME IS NULL:04/07/30 19:24 ID:???
つまり、俺たちみんなクレクレ君なんだから、
セミナーも試験も教本もタダじゃなきゃヤダヨー
ということだ
911NAME IS NULL:04/07/30 20:19 ID:???
ユーザー馬鹿にしたような企業には金出さねーよ
912NAME IS NULL:04/07/30 20:19 ID:???
セミナーに参加しなければ認定してやらないなんて、
某宗教団体みたいな商売だな。
913NAME IS NULL:04/07/30 20:24 ID:???
905が正論
914NAME IS NULL:04/07/30 20:30 ID:???
>>912
S(すばらしい)R(リッチな人の)A(集まり) だと吠えるアホ社員がいるぐらいの会社だから、
宗教団体みたいなもんなんだろう。

http://science3.2ch.net/test/read.cgi/infosys/1088682488/
915NAME IS NULL:04/07/30 21:54 ID:???
ていうか、SRAがやる認定試験なんて、中小の零細SIの人間しか受けないだろ。
NやFやHやIのエンジニアが受けるか?
他の企業も巻き込んで認定団体作って試験するとかってんならともかく。
916NAME IS NULL:04/07/31 00:19 ID:???
単独で勝手にやるってのが厭らしさが出てていいね。
917NAME IS NULL:04/07/31 00:46 ID:???
単独云々以前に、分不相応なことをしようとするから受け入れられないと思うよ。
現実的に、ほとんど受ける人間なんていないでしょ、SRAの資格なんて。
918NAME IS NULL:04/07/31 01:33 ID:???
SRAがPostgreSQLを餌に中小企業のSI仕事を取っていくには
いいアドバルーンだよな。
『うちはセミナーもやってます、社員には開発者もいます、
認定試験もやってます。PostgreSQLといえばSRA。
他のSI会社なんて糞ですよ』
なんて営業が客先で言えば、
馬鹿な担当者はそれを信じこんでSRAに頼んじゃうね。

セミナー、資格、オープンソース部署、少数の開発者。
みんなSRAの営業ツールなんだよ。

資格にしても、受験料で儲けるつもりはないだろうが、
宣伝効果は抜群だよ。

SI屋なんてのは、客である馬鹿担当だましてなんぼ。
SI業界の非難なんてへでもないんだろ
919NAME IS NULL:04/07/31 02:24 ID:???
なるほど、そういうゲスな営業手法だから、
いつまで経っても、ろくな利益が出ないわけだ。

偽者の技術で、食ってけるほど、SI業界甘くない。
というか、SRA、SIなんてやってるー? ただのPG会社だと思うけど。
920918:04/07/31 02:37 ID:???
>>918
今回の件で思い浮かべるのが、Linuxバブルで名前が出てきた会社群。
あったよねえ、たくさん。
で、ほぼすべて消えました。

今のSRAには、Linuxバブルのころのバブル企業の匂いがする。
ロコツな利益追求に目がいっちゃって、なんかひいちゃうんだよね。

しかも、ビジネスセンスが感じられない。
ぶっちゃけていえば、PostgreSQL自体に金の臭いがしないんだよ。
だからSRAはいまさらLinuxの夢よもう一度で、枯井戸掘ってる
馬鹿ものってイメージが抜けないんだよね。

SRAはPostgreSQLに注力しているイメージ作って、旨味あるのかねえ?
921NAME IS NULL:04/07/31 10:09 ID:???
まぁ実際のビジネスでは「○×ユーザ会に理事を送り込んでいます」ってのが
営業トークとして使われたりするわけだ。SRAに限らずね。
922NAME IS NULL:04/07/31 10:51 ID:???
>>921
SRAがPostgreSQLを営業トークのネタにしてるってのは明らかだが、
疑問はPostgreSQLがそんなに強い引きをもたらすのかってこと。
フリーDBになびく顧客相手にしてるってのもねえ。
なんかしょぼいじゃん。フリーDBなんて。

技術力は?だけど、MySQLやってるXXエージェンXXーみたいに
小規模の会社なら、小口顧客向けの薄利多売ってことで理解できるんだけどね。
923NAME IS NULL:04/07/31 11:46 ID:???
PostgreSQL単体でってのはヒキは弱いだろう。
フルOSSで、ってんなら結構ヒキはあると思う。

それに政府や自治体もそれなりに押してるし、
詳しいことを知らないクライアントに
「当社にもOSS開発者がいるんですよ」とか、
「ユーザ会に役員を送り込んでいます」ってのは
それなりにヒキになると思われ。

そういう某企業のパンフレット見たことあるしな(w。
924NAME IS NULL:04/07/31 16:05 ID:???
すみません、ある番号(たとえば65535)のODIをもつオブジェクトを検索したい場合はどうすればよいのでしょうか?

どこのテーブルかというかデータベースかということすらわからないが、とにかくそのOIDが割り当てられた
オブジェクトが知りたいのです。
925NAME IS NULL:04/07/31 16:29 ID:???
>>924
スレ違い
926NAME IS NULL:04/07/31 16:51 ID:???
>>925
認定技術者にはなれない技術力の低い人ですか?
わからないならわからないって素直にいえよ。
927NAME IS NULL:04/07/31 17:07 ID:???
結局ここの住人はこの程度だったということで
928NAME IS NULL:04/07/31 17:20 ID:???
>>924
地道にテーブル毎に
SELECT oid,* FROM table1 WHERE oid = xxx;
SELECT oid,* FROM table2 WHERE oid = xxx;
.
.
.

で探せば?

929NAME IS NULL:04/07/31 17:21 ID:???
>>924
ちょっとセコい方法ですが、pg_dumpall --oid して
その結果を grep するというのはどうでしょうか。
930NAME IS NULL:04/07/31 17:23 ID:???
>>926
あらあら
931NAME IS NULL:04/07/31 17:34 ID:???
>>928
それだとテーブルそのものやFUNCTIONなどに付いたoidが
発見されないんじゃない?
932NAME IS NULL:04/07/31 17:41 ID:???
>>931
じゃあ、pg_dumpallかね。
oid管理テーブルがあるわけじゃないからね。

ま、目的によるでしょ。
テーブル中のデータのoidを探してるなら928の方法でいいわけだし、
"資格試験"の問題解いてるわけじゃないし(w
933NAME IS NULL:04/07/31 17:56 ID:???
てな問題で困らないように認定を取得しときなさいって話。
934NAME IS NULL:04/07/31 18:09 ID:???
>>933
不発弾
935NAME IS NULL:04/07/31 18:15 ID:???
>>934
何が不発弾だよ。バカじゃないの?
936NAME IS NULL:04/07/31 18:17 ID:???
このスレの住人で合格しそうなのは929だけだったということだ。

試験範囲が出てるね。
ttp://osb.sra.co.jp/postgresql-ce/courses/silver-details.html
シルバーでこれならゴールドっていったい何がでるんだ?
937NAME IS NULL:04/07/31 18:30 ID:???
>>936
シルバーって・・・オラクルマスターの真似っこかよ。
938NAME IS NULL:04/07/31 18:44 ID:???
>933,935

釣りは釣り掘で。
939NAME IS NULL:04/07/31 18:46 ID:???
なにマジなってんだよ、ぷっ。 >935
940NAME IS NULL:04/07/31 19:12 ID:???
  |-`) .。oO >>939にはこの問題は難しすぎたらしい、、、
941929:04/07/31 19:14 ID:???
>>936
結構試験範囲広いですねー。
これだと私も必死で勉強しないと受からないかも。
942NAME IS NULL:04/07/31 20:37 ID:???
>924
データベースクラスタのディレクトリをoidで検索したら、
DBかテーブルならoidと同じファイル名で見つかる。
でなけりゃ、システムカタログをoidで一通り漁ってみるこった。
それでも無ければ、テーブルのタプルの可能性が高いが、
まぁ頑張ってくれ、としか言えない。

ていうか、そういうプログラム書いてくれ。

で、SRAの試験だが、SRAがやることの問題点としては、
他の団体がより中立な立場で認定試験を立ち上げることが
事実上不可能になってしまうこと(認定試験の乱立は好ましくない)。

SRAの人間が、まさかJPUGが法人化を目指していることを知らないわけはあるまい。
当然、JPUGも将来的には認定試験みたいなものを立ち上げることも考えたはずだ。

LPIとRHCEみたいに、「PostgreSQL CE」と「Powergres CE」みたいな両立なら
有り得るかもしれない。

が、今回「PostgreSQL CE」と銘打ったことで、その道は断たれた。
943NAME IS NULL:04/07/31 20:38 ID:???
必死にやってろw
944NAME IS NULL:04/07/31 21:41 ID:???
>>942
「元祖PostgreSQL CE」と「本家PostgreSQL CE」でいいじゃん
945NAME IS NULL:04/07/31 21:44 ID:???
一般ユーザーからすると

JPUG >>>>>>>>>>>> なにそれ? >>>> SRA
946NAME IS NULL:04/07/31 22:03 ID:???
SRAからJPUGに対する最後通牒?
947NAME IS NULL:04/07/31 22:34 ID:???
議論中にすみません。
PostgreSQLのデータベースに定期的にVacuumかけるために
cronで実行させようと思っているShellスクリプトがうまく動きません。
(アクセスにはパスワードが必要です)

#!/bin/csh
echo 'パスワード' | vacuumdb --dbname データベース名 --analyze

パスワードを渡しているつもりなのですが
上記を実行すると、パスワードを尋ねられてしまいます。
(これはShellスレで聞くべきことですかね・・?)
948NAME IS NULL:04/07/31 22:49 ID:???
せっかくマトモな批判をする人がいるというのに
945-946みたいな何も分かってない発言をされると
資格試験批判しているのが厨房の集まりのような印象をあたえて
正直迷惑。
949NAME IS NULL:04/07/31 23:00 ID:???
>>942
俺はどっちの中の人でもないから事実はわからんが、
SRAが資格試験をやることをJPUGが知らなかったって言ってる?
JPUGってSRAべったりの組織なんじゃないの?
事務局もSRAの中にあるみたいだし。

あと、俺もJPUGに資格試験は無理だと思うね。
ドキュメントの翻訳ですらあの程度なのに。
950NAME IS NULL:04/07/31 23:13 ID:???
スキルの高い皆さん出番ですよー。
>>947
明日の昼までに良い回答がなかったら俺が答えてやる。

次スレは
【シルバー?】PostgreSQLのことならここで聞け Part 2【ゴールド?】
か?(w
951NAME IS NULL:04/07/31 23:26 ID:???
>949
JPUGの看板を使って、実際には企業にやってもらうという方法もある。
SRAがイニシアティブを取るにせよ取らないにせよ、
コミュニティという看板があることで
他の企業(特にSRAより大手)がコミットしやすくなることは間違いない。

SRAを通してPowerGres Plusを売っている富士通は除くとしても、
他のメーカー・SIerはこの状況はあまり面白くないだろう。
SRAは別にPostgreSQLの開発にコミットしてるわけじゃないんだし。

# まぁ、Bruceに金出してるってのはあるが、
# Bruceの働きっぷりも褒められたもんじゃないしな。
952NAME IS NULL:04/07/31 23:34 ID:???
>>949
>> あと、俺もJPUGに資格試験は無理だと思うね。
>>ドキュメントの翻訳ですらあの程度なのに。

ドキュメント翻訳はSRAがやってる。
953NAME IS NULL:04/07/31 23:48 ID:???
>>951
ふむ。それイイかもね。
これからJPUGはどうなってくんだろう。JPUGでフルタイムで
人を雇ったりする方向になるのかな。

>>952
お前は語る資格無し。
ttp://www.postgresql.jp/WG/jpugdoc/pg74xdoc/
ttp://www.postgresql.jp/document/
SRAが翻訳をやったのは7.1の時だけだ。
954947:04/07/31 23:50 ID:???
>>950
ありがとうございます。
自分でももう少し頑張ってみます。
955924:04/08/01 00:41 ID:???
>928
>929
>942

対象テーブルが少ないので、とりあえず地道にやってみました。
ありがとうございます。
956NAME IS NULL:04/08/01 01:59 ID:???
psql とかのメッセージの日本語訳はいつになったら正式版に取り込まれるのやら。
957NAME IS NULL:04/08/01 04:47 ID:???
>956
SRAの上場記念事業として行われる予定です



なんちって
958NAME IS NULL:04/08/01 09:37 ID:???
ほう、日本語訳はsraとかいう会社がやってくれるようになったのか。
OSSに理解のある会社ですか、感心感心。
ほう、Windows nativeなものを商品にしてきましたか。
まぁ翻訳ガンガってるしwindowsユーザで困ってる人もいるだろうしな。
ほう、資格試験ですか。... Σ(´Д`;) ってなんでチミが?

オイラは日本語訳出してくれてる会社ってイメージしかないぽ....
959NAME IS NULL:04/08/01 10:52 ID:???
>>959
それはSRAどころかJPUGとしてもやってない。
個人レベルでやってるだけなので、むしろお前がやれば?

ところでこのスレの住人はみんな、翻訳はSRAがやってると
勘違いしてるんですか?
960959:04/08/01 11:08 ID:???
指し間違えた。>>957

ところで、結局誰も>>947には答えてくれないのか?
961NAME IS NULL:04/08/01 11:46 ID:???
>947
#!/usr/bin/expect

spawn vacuumdb -W
expect "Password: "
send "password\r"
expect "VACUUM"
962950:04/08/01 12:14 ID:???
>>947
俺なら.pgpass使う。
ttp://www.postgresql.jp/document/pg743doc/html/libpq-pgpass.html

cronを実行するユーザで、
echo '*:*:データベース名:ユーザ名:パスワード' > ~/.pgpass
chmod 600 ~/.pgpass
963947:04/08/01 20:37 ID:???
>>961
対話的?な便利なコマンドがあるんですね。
しかし残念ながら動かしたいサーバー(共有レンタル)にインストールされておりませんでした・・
せっかく教えて頂いたのに申し訳ありません。

>>962
すんなりいけました。
いままでアクセスする度にパスワード入力していたのも全て省けるんですね。

expectコマンドも今後使用できるサーバーで活用させて頂きます。
みなさん、本当にありがとうございました。

964NAME IS NULL:04/08/02 10:09 ID:BenG0eaq
TurboLinuxすぐ止めたSRAのこと、資格もすぐアボーンするつもりです。
965NAME IS NULL:04/08/02 10:51 ID:q8J3P80b
すみませんが教えてください。↓のようなテーブルがあります。
(ずれませんように・・・)

master detail

id | name id | item
--+------ ---+-------
1 | nameA 1 | 1
2 | nameB 1 | 3
1 | 5
2 | 3
2 | 4
2 | 5

masterと、detailは、1対nの関係として、n側に指定した値を持つ
行をmaster側から、検索するには、どうすればよいのでしょうか?

例えば、detailのitemが「3と5」であるmasterの行を抽出、とやると、
nameAの行だけが帰ってくるようにしたいんです。
「3と4と5」ならnameBだけ。

Postgresは7.4です。よろしくお願いします。
966965:04/08/02 10:54 ID:q8J3P80b
やっぱりずれたので、無理せず縦に。

master
id| name
-+------
1 | nameA
2 | nameB

detail
id | item
--+------
1 | 1
1 | 3
1 | 5
2 | 3
2 | 4
2 | 5

お願いします。
967NAME IS NULL:04/08/02 12:31 ID:???
いまいちわかんない。
> 例えば、detailのitemが「3と5」であるmasterの行を抽出、とやると、
> nameAの行だけが帰ってくるようにしたいんです。
「1と3と5」の時にnameAが返ってくるならわかるが、
「3と5」だったらnameBももってるんじゃない?
968NAME IS NULL:04/08/02 13:00 ID:D8nSUXhk
数学も分んないのにDBですか。
ソースも読まないのにオプソなDBですか。
969965:04/08/02 13:10 ID:q8J3P80b
>>967
すみません。まったくそのとおりでした。
条件を書き直します。

誤:
>例えば、detailのitemが「3と5」であるmasterの行を抽出、とやると、

正:
例えば、detailのitemが「1と5」であるmasterの行を抽出、とやると、

でした。
よろしくお願いします。

>>968
すまん。
970NAME IS NULL:04/08/02 14:39 ID:???
>>969
WHERE句を繰り返すしかないかなぁ。
SELECT name FROM master WHERE
EXISTS (SELECT * FROM detail WHERE id=master.id AND item=1)
AND
EXISTS (SELECT * FROM detail WHERE id=master.id AND item=5);
971NAME IS NULL:04/08/03 00:11 ID:???
「リレーショナル 除算」でググれ。
972アビボ
おれもpostgreSQL認定資格試験作ります。

階級 試験料
postgresql 特級 \8000‐
postgresql 上級 \4000‐
postgresql 中級 \3000‐
postgresql 初級 \2500‐

みんながんばってね♪