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

PostgreSQL

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

☆関連スレッド
[PHP + PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=983128806
[PHP以外+PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=988929199
[MySQL vs PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=989341364
0135名無しさん@お腹いっぱい。01/12/19 00:20ID:eyjDftvg
>>128
> SELECT setval('sequence_name', newval);
おお、通りすがったら、ここ数日悩んでいた回答が...、ありがとう。
0136初心者01/12/19 21:31ID:0XK3f5i/
先日PostgreSQLのWin-Native版をダウンロードしまして
インストールしたのですが、Administratorでインストール
して、Administrator/そのパスワードで接続しようとしてい
るのですが「このシステムのカタログ(?)にはAdministratorは
存在しません」という英語のエラーが出てどうしてもうまく
いきません。

環境は Win2000 SP2 です。Winに関する知識は少々持ち合
わせていますが、Postgreについては厨なので、何かアドバイ
スいただけるようでしたらよろしくお願いします。
0137名無しさん@お腹いっぱい。01/12/19 22:01ID:???
Windows版は知らんが、pg_shadowにAdministratorというユーザーがいないから
じゃない?
psql -U pgsql template1してcreate user Administrator;でどうよ。
0138名無しさん@お腹いっぱい。01/12/20 12:19ID:ehqpB6yM
CSEは隠しテーブルまで見せてくれるので、テーブル構造みるのは便利だね。

だけど、データ編集グリッドの動きが良くないぞ。
データ編集ソフトどっかに無いですか?
0139名無しさん@お腹いっぱい。01/12/20 15:23ID:fwnRjdeO
>http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
>ただ、実用レベルではないな。環境によっては動かない。

これについて詳しく知りたいです。
0140番組の途中ですが名無しです01/12/21 01:46ID:???
>>139
自分で評価しる
0141名無しさん@お腹いっぱい。01/12/25 10:44ID:ZkkXZhFh
WindowsではMySQLの方が良いのか?age
0142番組の途中ですが名無しです01/12/25 14:58ID:???
良スレ(?)はマターリの法則に基づきsage.
>>141
漏れは、PostgreSQLとMySQLの両方をざっと評価して、
安定度でMySQL for Win32を選択したゾナモシ
0143名無しさん@お腹いっぱい。01/12/25 18:03ID:MifQpswm
http://www.hi-ho.ne.jp/tsumiki/
つながりますか?
ミラーページはないのですか?
0144名無しさん@お腹いっぱい。02/01/12 08:19ID:9xVpue2a
postgresサーバにユーザ名postgres(postmaster)だけでログイン出来てしまうんですが、
これって問題ですよね。
パスワードを設定してもしなくても何故かログインできてしまうのです。
これはどのように設定すればパスワードが有効になるのでしょうか。
Linux上ではpasswdコマンドでパス自体作成済みです。
0145名無しさん@お腹いっぱい。02/01/13 22:45ID:NvlGFTwS
MySQLはWindowsに入るけどさPostgresってWindowsに入るの?
0146名無しさん@お腹いっぱい02/01/13 23:31ID:???
>>145
ほい、Win32ネイティブ版らしい。
http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
でも、実験程度くらいにしか使えない模様。

http://www.s34.co.jp/~luster/pgsql/
に、Cygwin環境で動作するやつがある。
動けばこちらのほうがいいかも。
0147名無しさん@お腹いっぱい。02/01/14 20:42ID:???

強制的に IndexScan 使うように Query 発行できんもんかな
Oracle みたいに。
0148名無しさん@お腹いっぱい。02/01/15 15:26ID:Rlrh+zWf
すんません.
データベースのちゃんとした設計を勉強したいんですけど
お勧めの書籍ってあります?
PostgreSQL 以外の奴でももちろん可

もうちょっとスマートな設計を身に付けたいんで
0149名無しさん@お腹いっぱい。02/01/15 15:53ID:EkJV4LyD
Postgreって何て読むの?ぽすとぐれ?ぽすとぐわぁ?
0150名無しさん@お腹いっぱい。02/01/15 16:01ID:???
Postgres:ポストグレス
PostgreSQL:ポストグレス/ポストグレスエスキューエル/ポストグレエスキューエル/ポストグレスキューエル
0151名無しさん@お腹いっぱい。02/01/15 17:29ID:???
>>150
作者たちは「ポストグレス・キューエル」
て読んでいるみたいね。
0152名無しさん@お腹いっぱい。02/01/18 15:44ID:VDCf4fwa
>>144
インストールするとき、スーパーユーザーの名前変えてないの?
ふうん
0153名無しさん@お腹いっぱい。02/01/18 18:48ID:???
. ∧   ∧
( ´ ・∀・`) へー
0154agege02/01/19 02:27ID:ZUGdJ0ZN
> 152
スーパーユーザ名を変えたところで解決にはなりません。
恐らく144の悩みはCGIからのDB操作が関連するためだと思われ、
そうなるとWWWユーザ名でアクセスすることになり、CGIを使う人
全てがアクセスできることを懸念していると思う。

解決法はちゃんとマニュアルに載っているのでシッカリ読むようにお奨めする。
結構しっかり書かれているのでここで説明するのは差し控えておこう。
0155名無しさん@お腹いっぱい。02/01/19 02:39ID:puXqubmn
>154
勿体ぶるなYO!
0156agege02/01/19 02:53ID:ZUGdJ0ZN
> 155
勿体ぶってなんかいないYO!

単にマニュアルを見るだけでガスYO!
0157名無しさん@お腹いっぱい。02/01/19 02:56ID:puXqubmn
>156
英語のマニュアルは3行読むだけで疲れる。
あの変な日本語のマニュアルは5行が限界だ。
0158名無しさん@お腹いっぱい。02/01/19 02:59ID:???
>157
よくいった!
もう神様にでもなったような日本代表気取りのあいつ、自分だけで本書いてるんじゃネエヨ。
読みにくいんだよお前の本。
0159agege02/01/19 03:03ID:ZUGdJ0ZN
> 157ぐらい
DAKARA. ここに書いても結局マニュアルと同じようになるでしょ!

とわたしの脳がおっしゃいました。
0160名無しさん@お腹いっぱい。02/01/19 03:05ID:puXqubmn
>159
じゃ、どこの行か教えてくれ。
0161agege02/01/19 03:06ID:ZUGdJ0ZN
とかなんとか言っちゃって、本当は、じらされて喜んでるんじゃないの?
0162名無しさん@お腹いっぱい。02/01/19 03:10ID:???
>159

>とわたしの脳がおっしゃいました。

やばいよ(笑)
0163名無しさん@お腹いっぱい。02/01/19 03:11ID:puXqubmn
公開放置プレイかよ、(;´Д`)ハァハァ・・・
0164agege02/01/19 03:14ID:ZUGdJ0ZN
じらすほうも興奮するネー
0165名無しさん@お腹いっぱい。02/01/19 03:36ID:???
つまんねー
0166名無しさん@お腹いっぱい。02/02/04 16:59ID:???
>7.1ではシステムインデクスも一部の例外を除いて
>postmasterを停止せずテーブル単位のREINDEXが可能です。
>作成者の怠慢でどこにも書かれていなかったこともあって
>7.2.0では出来なくなってしまいました。7.2.1では再び
>可能になります。

(´・ω・`) ショボーン
0167名無しさん@お腹いっぱい。02/02/04 16:59ID:W5Vxrbq7
7.2リリース近いage
0168名無しさん@お腹いっぱい。02/02/05 03:13ID:QtJ4ED0z
>>167
そう思って待ち続けて早3ヶ月。PAMサポート早くホスィ...
0169名無しさん@お腹いっぱい。02/02/05 08:58ID:y7uQjn4d
Postgres JP の ML によると、
7.2リリースって、日本時間だと今日だったような・・・。
0170名無しさん@お腹いっぱい。02/02/05 23:02ID:QtJ4ED0z
>>169
うお、ホントだ出てる!
pgsql-hackers見てきたけど問題なさそうだね。7.2リリースage
0171名無しさん@お腹いっぱい。02/02/06 09:34ID:IeKBEXzZ
http://www.postgresql.org/とかにはまだ出てない....。
http://www.postgresql.jp/にもでてない....。
ftpにはもうあるのかな。

早くしてくれよう。
VACCUMに期待してるんだよう。
0172名無しさん@お腹いっぱい。02/02/06 09:52ID:SjV/7aoM
>>171
ftpにはあるよ。
0173名無しさん@お腹いっぱい。02/02/06 13:07ID:IeKBEXzZ
どうもありがとう。
メーリングリストでも流れたね。
0174名無しさん@お腹いっぱい。02/02/06 15:05ID:paN7WRtf
cron で vacuumdb をすると、以下のような警告(?)が
出るのですが、何なのでしょう?
普通にコマンドラインから vaccumdb すると出ません。
cron での設定が悪いのでしょうか?
--------------------------
/usr/local/pgsql/bin/vacuumdb: basename: command not found
/usr/local/pgsql/bin/vacuumdb: sed: command not found
--------------------------

RH 7.2 + PostgreSQL 7.1.3
0175名無しさん@お腹いっぱい。02/02/06 17:09ID:???
PostgreSQL 7.2 Mirror site on RingServer
ftp://ring.ocn.ad.jp/pub/misc/db/postgresql-jp/7.2/postgresql-7.2.tar.gz
ftp://ring.asahi-net.or.jp/pub/misc/db/postgresql-jp/7.2/postgresql-7.2.tar.gz

現時点では、OCN にはまだミラーされてないみたいね。
0176名無しさん@お腹いっぱい。02/02/06 22:01ID:SjV/7aoM
>>174
cron環境でPATHが通ってないと思われ。
man 5 crontabして環境変数を追加すれ。
0177名無しさん@お腹いっぱい。02/02/07 00:46ID:f6G5y4rd
>>175

RingServer にリンク張るときは、ftp.ring.gr.jp を指定するのが原則。
ftp://ftp.ring.gr.jp/pub/misc/db/postgresql-jp/7.2/postgresql-7.2.tar.gz
0178名無しさん@お腹いっぱい。02/02/07 01:11ID:???
>177
ftp.t.ring.gr.jpにすると自動で近いところに振り分けてくれるみたい。
0179hogehoge02/02/07 18:14ID:Qub1OJU0
Sol7+gcc-2.95.3+PostgreSQL7.2
./configure --enable-multibyte=EUC_JP --enable-syslog \
--enable-readline --with-gnu-ld=no --with-maxends=16

だとmake checkでvacuumdbがコケるのは漏れだけだろうか。
まだ共有メモリが足らんのかなあ。

MLに投げるのは怖いよ。
(((゚д゚;))))ガクガクブルブル
0180名無しさん@お腹いっぱい。02/02/20 07:14ID:???
>>174
basenameとかsedって普通 /usr/bin あたりに無いか?
そこにPATHが通ってないんなら、他のcronのコマンドもエラー出ないか…?

スレと関係なくてスマン>ALL
0181名無しさん@お腹いっぱい。02/02/21 00:08ID:???
>>149
ttp://www.jp.postgresql.org/postgresql.mp3
だそうです。
0182名無しさん@お腹いっぱい。02/02/21 00:35ID:???
>>181
http://www.jp.postgresql.org/postgresql.mp3 が公式発音なのね。
ぽすとぐれす きゅーえる か。
ポ にアクセントね。
0183名無しさん@お腹いっぱい。02/02/24 21:22ID:QRKHUR9a
つい最近、別のマシンにインストールしてたんだが、
initDBできんかった・・・
local1_template1.sourceが行方知れずだと言われて・・・
パスの設定とかは問題なし。
同じ現象に出くわした人、いる?
0184sage02/02/25 00:50ID:???
>>183
知人から"軽ーく"聞いた話だと、もとからpostgresが入ってただか
入れたのを忘れたのか知らんが、それが邪魔してそんなメッセージ出た
とか聞いたような気がする。
ただ、よく聞いてなかったし、聞き流したんで違ったらスマソ。
0185名無しさん@お腹いっぱい。02/02/25 01:32ID:???
>183
それよくでるよ。
一度徹底的にPostgres関係のファイル掃除して改めて入れ直すしかないと思う。
0186名無しさん@お腹いっぱい。02/02/25 15:14ID:???
メーリングリスト来てた・・・
http://www.softkoubou.co.jp/
ソースコードジェネレータがようやくデモ版を動かせるみたい。
018718302/02/26 01:46ID:???
>>184、185
多謝。
which initdb かけたら、他のディレクトリから発見・・・(なぜ?)
お掃除しまくったら、うまくいった。
0188nobodyさん02/03/08 20:10ID:+DqcBvRV
教えてください。
シフトJISで保存したタブ区切りのテキストファイルを
copyコマンドで登録しているのですが、うまくいきません。
以下のようにclient_encodingをSJISにしてみてもダメでした。

set client_encoding to 'SJIS';
\copy hogedb from /tmp/hoge.txt

いつもはEUCコードのファイルなので問題なく登録できています。
シフトJISのファイルをcopyすることはできないのでしょうか?
0189nobodyさん02/03/08 22:25ID:???
7.2でUNIXソケットの認証が強固になった。
trust教える奴には「氏ね」といってやろう。
0190nobodyさん02/03/09 06:37ID:???
>>188
改行コードの問題である可能性はある。
0191nobodyさん02/03/09 16:09ID:???
大学でPostgreSQLが入っていたので試してみたのですが、
PHPからpg_connectで接続するとき、他人の作ったDBに
その人のユーザ名を user= で与える(パスなし)と、
その人にしか権限が与えられていない追加・更新が
出来てしまうのですが、これを防ぐ方法はないのでしょうか?
よろしくお願いします。
0192nobodyさん02/03/09 17:17ID:???
>>191
ユーザー名ふやしておけ
0193nobodyさん02/03/09 18:52ID:???
>>191
管理者がlocalからの接続を"trust"と設定していると思われ。認証方式
をパスワード認証に変更してもらわないとダメ。
019419102/03/09 22:29ID:???
>>193,>>192
お答え、ありがとうございます。月曜日にでも管理者に相談してみます。
ところで、仮にパスワード認証にしたとして、
pg_connect("user=■■, password=□□");
のとき、直に書いて、もしこれを他人がコピーして、他人がその人の
エリアに設置した場合、やっぱり接続されてしまうもんなんですか?
0195nobodyさん02/03/09 22:34ID:bvBGbCGY
>>188
中のデータ設定がEUCで設定されているからであ

$ export PGCLIENTENCODING=SJIS
show client_encoding
\g
NOTICE: Current client encoding is SJIS
019619302/03/10 11:19ID:???
>>194
うん。接続されちゃう。それがパスワード認証。

PHPで可能か知らないけど、スクリプトのパーミッションを711にしても
動作するなら他人にパスワードを見られるリスクは減らせるね。
0197nobodyさん02/03/10 22:27ID:CbM1jE6Z
postgreで今日から二日前までのデータを取得する、といった抽出条件は
どのように書けば良いのでしょうか。
0198nobodyさん02/03/10 22:31ID:???
>>197
せめて「postgres」って書こうYO!
質問は難しすぎて漏れにはワカラン
0199nobodyさん02/03/10 22:38ID:???
>>197
日付はとってあるの?
0200nobodyさん02/03/11 01:09ID:???
>>198
postgres

>>199
とってます。
何とか自分で解決できました。聞いておきながらスマソ

WHERE TO_CHAR(CURRENT_TIMESTAMP, ''J'') = TO_CHAR(DATE, ''J'') AND
(TO_NUMBER(TO_CHAR(CURRENT_TIMESTAMP, ''SSSS''), ''999999'') -
TO_NUMBER(TO_CHAR(DATE, ''SSSS''), ''999999'')) < (DIFF_MINUTE * 60)

こんな感じでユリウス歴に変換して行いました。
UNIX時刻に変換出来るのが一番良いんだけど無いみたいだし。
0201nobodyさん02/03/12 14:01ID:???
テーブルにハイフンつきで入ってる電話番号を、
ハイフン無しの数字で検索したいんだけど、
どうすりゃいいんでしょ。

create table tel(
name varchar(100),
tel_no varchar(16)
);

select * from tel;
name | tel_no
-----+---------------
aaaa | 03-3333-1111
bbbb | 03-3333-2222
cccc | 03-3333-3333

Webのフォームからは、0333331111と入力して検索したい
んですが、どんなクエリにしたらいいですか。
0202nobodyさん02/03/12 14:14ID:???
>>201
あらかじめ検索用にそういうデータ作っておくのが一番かと。
046-6xxと
04668-2xを、どう区別するの?とかいろいろ問題出そうだから。
020320102/03/12 14:38ID:???
>>202
正規表現とかなんとかでどうにかなりませんかね。
PostgreSQL7.1.3です。
0204191=19402/03/12 20:48ID:???
>>196
遅くなりましたけど、お答えありがとうございました。
701にしてFTPからでも見られないようにしました。
責任者曰く、テスト的な導入だからそういう設定はしていないでした。
将来的にするそうです。
0205名無しさん02/03/12 22:43ID:???
データベースの設計に問題あり。
0206.02/03/13 02:31ID:???
重複行を物理的(?)に削除する方法ってありますか?
SELECT DISTINCT でなくて、実際に行を削除したいのです。

BEGIN;
CREATE TABLE temp AS SELECT DISTINCT * FROM table;
DELETE FROM table;
INSERT INTO table SELECT * FROM temp;
DROP TABLE temp;
END;

なんてしないとダメなんでしょうか?
0207nobodyさん02/03/13 16:51ID:JEuVnqmD
oidを使えばなんとなかる。
0208nobodyさん02/03/14 06:59ID:k3DW28WH
PostgreSQLに画像を格納したいんだけれど、どうすんの?
で、それをphpから読み出したいんだけど?
0209nobodyさん02/03/14 07:59ID:???
>>208
ラージオブジェクトで検索すれ
0210nobodyさん02/03/14 19:18ID:fh47mHav
>>208
PHP マニュアルと、Postgres のマニュアルを読もう。

読み出しについてだけヒント。
SQL はトランザクションブロック内に。
pg_loexport() でSQL 実行結果から切り出す。
0211nobodyさん02/03/14 21:43ID:k3DW28WH
>>208
>>209さんありがとうございます。

マニュアル読んでも、よく解らなかったので、ラージオブジェクトを
扱っている書籍等、ありましたらお教えください。

ってゆうか、今INSERTの所でつまずいています。
0212nobodyさん02/03/14 22:54ID:???
>>211
質問時の鉄則。
「何が」わからないのかを書く。
「やったこと」を書く。
「どのように」うまくいかないのかを書く。
0213nobodyさん02/03/15 19:01ID:UO4e/HO0
初心者的な質問スマソ。
Postgres7.2なんですけど
createdb test
でデータベースtestをつくり
psql test
として
create user hoge with password 'hoge'
としてユーザhogeを作成しました。
この状態でCommonSQLEnvironmentで接続しようとすると
認証に失敗して接続できません。
ユーザ名hoge、パスワードhogeです。
ちなみにpg_hba.confは次のようにしてます。
host all 192.168.5.11 255.255.255.255 crypt
IPはもちろん自分のIPです。
何かとてつもない勘違いでもしてるんでしょうか?
0214nobodyさん02/03/15 19:47ID:???
>>213
「CommonSQLEnvironmentで接続」って何?
API直で使ってるとか何か?
0215nobodyさん02/03/15 20:53ID:pbklnejV
>>214
これです。
http://www.hi-ho.ne.jp/tsumiki/
0216nobodyさん02/03/15 23:21ID:???
>>213
Grantしていないのでは?
0217nobodyさん02/03/16 11:26ID:???
>>216
特定のテーブルに対してはしてます
0218nobodyさん02/03/16 12:15ID:???
>>217
エラーlog見れ。
0219nobodyさん02/03/16 14:11ID:???
>>218
[1] FATAL 1: Password authentication failed for user "hoge"
としか出てません
0220nobodyさん02/03/17 03:21ID:???
>>217
一度psqlでhogeユーザになってログインしてみては
0221nobodyさん02/03/17 14:52ID:bGzRpwXX
ちょいと質問なんですが、PHP+Postgreでユーザー登録の仕組みを作ってます。
で、ユーザー名(text)は大文字/小文字区別しなくて重複させたくないので、
(たとえば、"Hoge"がもう存在したら"hoge"も"HOGE"も弾きたい。)
select username from userdata where username ~* '$username' で
重複を探しています。
usernameに+や?や*を使った場合エラーが出てしまいます。
あらかじめPHPのquatemetaでバックスラッシュはつけてあるのですが…
なんかうまい方法はないものでしょうか?
0222nobodyさん02/03/17 15:06ID:???
>>221
>usernameに+や?や*を使った場合エラーが出てしまいます。

使用禁止にすりゃいいじゃん。ダメ?
0223nobodyさん02/03/17 15:16ID:???
SELECT username FROM userdata WHERE lower(username) = lower('$username');
022422102/03/17 23:43ID:bGzRpwXX
>>222,223
どうもありがとう。quatemetaはquotemetaでした。
>>222
usernameといっても、ニックネームみたいなもので
実際外人さんなんかでは記号使いたがる人もいるんで、
できれば制限はつけたくないんです。
>>223
これで使えそうです。日本語でも大丈夫ですよね?
(自分で試してみた範囲では特に問題なさそうでしたが)
022522302/03/18 00:30ID:???
>>224
quotemetaだけじゃなくてSQLのメタキャラクタも変換する事をお勧めする。
' → ''など
022620602/03/18 21:58ID:???
>>207
スマソ。いろいろやってみたけどわかんない。
oid を使って速度的に >206 で書いたのより速い SQL って書ける?
0227nobodyさん02/03/20 10:54ID:txl31ITf
>>226
「物理的に」っつー意味が良くわかんねーのだが。

デリートフラグが付いたものを、物理的にデータファイルから消す、という意図なら、
バキュームするしかないだろう。

>206のやりかたでも、postgresの仕様では「物理的」には、削除できないと思われ。


DISTINCTをつかって取得されるデータセットの上で、重複行を見えなくする(一つ
にまとめる)ことを例えば「論理的に削除」と呼ぶとして、これに対しての、「物理的
に削除」(Delte文での削除)、と言っているのならば、単純に重複行をoid使って削
除すればいいだけだと思うが。

テーブルのサイズにも寄るだろうが、oidを使って、削除するものが、>206より速度
的に劣るとは、絶対に思えん。


もしかして・・・・oidの概念とか、oidの使い方がわからないんかい?
0228その102/03/20 11:08ID:txl31ITf
こんな感じかな。思いつき&未検証スマソ。

>create test (a integer);
CREATE
>insert into test values (1);
INSERT 123055 1
>insert into test values (2);
INSERT 123056 1
>insert into test values (1);
INSERT 123057 1
>select * from test;

a
---
1
2
1
(3 rows)

>select distinct * from test;

a
---
1
2
(2 rows)

>select oid, a from test;

oid | a
-------+--
123055 | 1
123056 | 2
123057 | 1





0229続き02/03/20 11:09ID:txl31ITf
>delete from test where a=1 and oid<>(select max(oid) from test where a=1);
DELETE 1

>select * from test;
a
---
1
2
(2 rows)

>select oid, a from test;

oid | a
-------+--
123056 | 2
123057 | 1
(2 rows)
023020602/03/20 11:09ID:OKaF+07y
>>227
スマソ、後者。

DELETE FROM table WHERE oid = 重複

の「oid = 重複」の書き方がわかんないんす。
oidについては知ってるツモリ。
それとも、漏れ、わかってねぇ?
023120602/03/20 11:12ID:OKaF+07y
おう、カキコしてるあいだにサンプルが。THX。

でもこの消したい行がわんさかあるんですわ。
サブクエリとか使いまくったら何とかなるかな。。。
0232227(=228=229)02/03/20 13:46ID:txl31ITf
>>206
このサンプル、ちゃんとサブクエリ使っておいた。
oid最大のものだけ残して、あとはすっかりきれいにしてくれるはずだ。
023322702/03/20 14:26ID:txl31ITf
>206
>232では、勘違いしてた。削除対象そのものがたくさんあるって事だね。
うまいこと工夫してサブクエリ組み合わせるのもいいが、
次のようなファンクションを核のも手だぞ。

CREATE FUNCTION testfunc() RETURNS INTEGER AS '
DECLARE
rs RECORD;
va INTEGER;
BEGIN
FOR rs IN SELECT a FROM test GROUP BY a HAVING count(*)>1
LOOP
DELETE FROM test WHERE a=rs.a AND oid<>(SELECT MAX(oid) FROM test WHERE a=rs.a);
END LOOP;

RETURN 0;

END;
' LANGUAGE 'plpgsql';

plpgsql使ってるけどな。ファンクションの返り値は適当に工夫しる。
0234nobodyさん02/03/22 08:23ID:???
7.2 にした人、バキュームしてる?
0235nobodyさん02/03/25 00:06ID:n+2iUXgj
postgreである文字列を検索するとき、
LIKE句使うのと、正規表現使うのでは、どちらの方がパフォーマンス的に
良いのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています