タグ付けされた質問 「postgresql」

PostgreSQLは、Linux、UNIX、Windows、OS Xを含むすべての主要なプラットフォームで利用できるオープンソースのオブジェクトリレーショナルデータベース管理システム(ORDBMS)です。質問する場合は、Postgresの正確なバージョンをお知らせください。管理または高度な機能に関する質問は、dba.stackexchange.comに直接送信してください。

3
配列で選択を行う方法はpsqlで値句を含みます
arr タイプの列がありarrayます。 arr列を含む行を取得する必要がありますs このクエリ: SELECT * FROM table WHERE arr @> ARRAY['s'] エラーを出します: エラー:演算子が存在しません:文字が変化しています[] @>テキスト[] なぜ動作しないのですか? PS私はany()演算子について知っていますが、なぜ動作しないの@>ですか?

7
SQLITE SQLダンプファイルをPOSTGRESQLに変換する
私はPOSTGRESQLで本番環境でSQLITEデータベースを使用して開発を行っています。ローカルデータベースを大量のデータで更新しただけで、特定のテーブルを本番データベースに転送する必要があります。 実行sqlite database .dump > /the/path/to/sqlite-dumpfile.sqlに基づいて、SQLITEは次の形式でテーブルダンプを出力します。 BEGIN TRANSACTION; CREATE TABLE "courses_school" ("id" integer PRIMARY KEY, "department_count" integer NOT NULL DEFAULT 0, "the_id" integer UNIQUE, "school_name" varchar(150), "slug" varchar(50)); INSERT INTO "courses_school" VALUES(1,168,213,'TEST Name A',NULL); INSERT INTO "courses_school" VALUES(2,0,656,'TEST Name B',NULL); .... COMMIT; 上記を、実稼働サーバーにインポートできるPOSTGRESQL互換のダンプファイルに変換するにはどうすればよいですか?

7
配列にないPostgres
Postgresのネイティブ配列タイプを使用しており、IDが配列受信者IDにないレコードを検索しようとしています。 私は彼らがどこにいるのかを見つけることができます: SELECT COUNT(*) FROM messages WHERE (3 = ANY (recipient_ids)) しかし、これはうまくいきません: SELECT COUNT(*) FROM messages WHERE (3 != ANY (recipient_ids)) SELECT COUNT(*) FROM messages WHERE (3 = NOT ANY (recipient_ids)) この状態をテストする正しい方法は何ですか?

7
node.js postgresqlモジュールを使用する適切な方法は何ですか?
Herokuでnode.jsアプリを作成し、pgモジュールを使用しています。データベースを照会する必要がある各要求のクライアントオブジェクトを取得する「正しい」方法を理解できません。 ドキュメントは次のようなコードを使用します: pg.connect(conString, function(err, client) { // Use the client to do things here }); しかし、確かにpg.connect、データベースを使用するすべての関数内で呼び出す必要はありませんよね?これを行う他のコードを見たことがあります。 var conString = process.env.DATABASE_URL || "tcp://postgres:1234@localhost/postgres"; var client = new pg.Client(conString); client.connect(); // client is a global so you can use it anywhere now Herokuの無料のデータベースインスタンスはいずれにしても1つの接続に制限されていると思うので、私は2番目のオプションに傾いていますが、この方法を使用することには欠点がありますか?クライアントオブジェクトを使用する前に、毎回クライアントオブジェクトがまだ接続されているかどうかを確認する必要がありますか?


20
Mountain Lionでソケットファイル「/var/pgsql_socket/.s.PGSQL.5432」が見つからない(OS Xサーバー)
OS X Serverを使用して、MacMini ServerをLion ServerからMountain Lionにアップグレードしました。PostgreSQLについて、昨年Lion Serverを最初にインストールしたときと同じ問題が発生しています。 なんらかのPostgreSQLターミナルコマンドを実行しようとすると、長年にわたって多くの人に知られている次の悪名高いエラーメッセージが表示されます。 psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? エラーが発生したときに、_postgresのパスワードを変更しようとしました。いくつかのコマンドを試しましたが、同じエラーが発生しました。サーバーを再起動したが運が悪かった。rootとしてログインして/ var / pgsql_socketを確認しましたが、フォルダーは空です。フォルダー/ var / pgsql_socket_altも空です。 これについてオンラインで確認しました。ただし、Stack Overflowを含め、私が読んだほぼすべてのソリューションは、PostgreSQLの削除と再インストールを提案しています。わかりませんが、サーバーアプリのいくつかのオプションでPostgreSQLを使用しているため、これはもっともらしいオプションとは思えません。私はApple Enterprise Support(契約なし)に連絡しましたが、私の問題は$ 695をキャストする開発者によって解決される必要があると言われました。 再構築できないため、現在ダウンしているウェブサイトがあります。現時点では、これを手伝うためにどこに頼るのかわかりません。何かを見つけることができるかどうかをオンラインで探し続けます。ただし、データベースを再構築できるように、誰かが迅速に回答してくれることを願っています。 更新:2012年12月13日15:33 GMT-6 これは、ps auwwx | …

7
1から10の範囲の乱数を生成します
この質問で取り組んだテストクエリに対する私のアプローチがうまくいかなかったので、今は別のことを試みています。pgのrandom()関数に1から10までの数値のみを取得するように指示する方法はありますか?
95 sql  postgresql  random 

3
開発スナップショットのテーブルの一部のみのPostgresダンプ
本番環境では、データベースのサイズは数百ギガバイトです。開発とテストのために、このデータベースのスナップショットを作成する必要があります。スナップショットは機能的には同等ですが、サイズは10または20ギガです。 課題は、ビジネスエンティティのデータが多くのテーブルに分散していることです。一部のエンティティのみがダンプに含まれるように、フィルター処理されたスナップショットを作成する必要があります。そうすれば、開発やテストのために毎月かそこらで新しいスナップショットを取得できます。 たとえば、次のような多対多の関係を持つエンティティがあるとします。 会社にはN部門があります 部門にはN人の従業員がいます 従業員にはN回の出席記録があります 1000社、2500部門、175000人の従業員、そして数千万人の出席記録があります。たとえば、最初の100社とそのすべての構成部門、従業員、および出席記録を引き出す複製可能な方法が必要です。 現在、スキーマにはpg_dumpを使用しています。次に、pg_dumpを--disable-triggersおよび--data-onlyを指定して実行し、小さいテーブルからすべてのデータを取得します。開発サイクルが速く、カスタムスクリプトが壊れやすく、古くなる可能性が高いため、データの一部を取り出すためにカスタムスクリプトを作成する必要はありません。 どうすればこれを行うことができますか?データベースから論理パーティションを引き出すのに役立つサードパーティのツールはありますか?これらのツールは何と呼ばれますか? 一般的なアドバイスも歓迎します!
95 postgresql 


8
postgresを使用してstring_aggのようにarray_aggでnull値を除外する方法
array_agg名前の収集に使用すると、名前がコンマで区切られますが、null値がある場合は、そのnullも集合体の名前として使用されます。例えば ​​: SELECT g.id, array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users, array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users FROM groups g GROUP BY g.id; それは,Larry,PhilちょうどLarry,Phil私の代わりに戻ります(私の9.1.2では、それは示していますNULL,Larry,Phil)。以下のように、このフィドル 代わりに、を使用するstring_agg()と、次のように名前(空のコンマやnullなし)のみが表示されます 問題はPostgres 8.4、サーバーにインストールしたのにstring_agg()そこで機能しないことです。array_aggをstring_agg()と同様に機能させる方法はありますか?


7
Postgresでのランダムな行の迅速な選択
数百万の行を含むpostgresのテーブルがあります。インターネットで確認したところ、次のことがわかりました SELECT myid FROM mytable ORDER BY RANDOM() LIMIT 1; それは機能しますが、本当に遅いです...そのクエリを作成する別の方法、またはすべてのテーブルを読み取らずにランダムな行を選択する直接的な方法はありますか?ちなみに「myid」は整数ですが、空のフィールドにすることもできます。


4
ALTER TABLE、null以外の列にnullを設定、PostgreSQL 9.1
null以外の列を持つテーブルがあります。この列にnull値をデフォルトとして設定するにはどうすればよいですか? つまり、私はこのようなことをしたいのです: postgres=# ALTER TABLE person ALTER COLUMN phone SET NULL; しかしそれは示しています: postgres=# ALTER TABLE person ALTER COLUMN phone SET NULL; ERROR: syntax error at or near "NULL" LINE 1: ALTER TABLE person ALTER COLUMN phone SET NULL;


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.