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

PostgreSQLバージョン9.4

2
ALTER TABLE上のデータベース「凍結」
私たちの本番環境は、今朝、テーブルを変更し、実際に列を追加するときにしばらく凍結しました*。 問題のあるSQL:ALTER TABLE cliente ADD COLUMN topicos character varying(20)[]; *システムへのログインには、まったく同じテーブルからの選択が必要であるため、alterテーブルでログインすることはできません。システムが通常の操作を再開できるようにするには、実際にプロセスを強制終了する必要がありました。 テーブル構造: CREATE TABLE cliente ( rut character varying(30) NOT NULL, nombre character varying(150) NOT NULL, razon_social character varying(150) NOT NULL, direccion character varying(200) NOT NULL, comuna character varying(100) NOT NULL, ciudad character varying(100) NOT NULL, codigo_pais character varying(3) NOT NULL, …

1
PostgreSQLのjsonb配列から特定のオブジェクトを取得するにはどうすればよいですか?
おおよそ次のようなjson配列を保持する「user」というフィールドがあります。 "user": [{ "_id" : "1", "count" : "4" }, { "_id" : "3", "count": "4"}] 今私は次のようなクエリが必要です: select count from tablename where id = "1" countPostgreSQL 9.4では、jsonオブジェクトの配列から特定のフィールドを取得できません。

1
すべての列のデフォルト値を使用してテーブルに複数の行を挿入する方法はありますか?
RBARの方法で、すべての列にデフォルト値を持つ複数の行をテーブルに挿入できます。 create table course(course_id serial primary key); do $$ begin for i in 1..100000 loop insert into course default values; end loop; end;$$; 単一のSQLステートメントで同じことを行う方法はありますか?

5
PostgreSQLサーバーのSSL証明書を調べる方法
実行中のPostgreSQLサーバーがあり、SSLが有効になっているとします。「標準」のLinuxおよびPostgreSQLツールを使用して、そのSSL証明書を調べるにはどうすればよいですか? 私はあなたが実行から得られるものに似た出力を期待していますopenssl x509 -text ...。また、1行または2行のコマンドラインでの回答を期待しているので、パケットスニファーを実行する必要はありません。 PostgreSQLサーバーにアクセスできないため、その構成ファイルを直接見ることができません。 私はスーパーユーザーのログインを持っていないので、ssl_cert_file設定の値を取得できませんpg_read_file。 openssl s_client -connect ...PostgreSQLはSSLハンドシェイクをすぐに実行したくないようであるため、使用は機能しません。 psqlドキュメントをざっと見てみると、起動時にその情報を表示するコマンドラインパラメーターが見つかりませんでした。(特定の暗号情報は表示されますが。)

1
顧客ごとに10パーセンタイルと90パーセンタイルを取得
顧客とスコア(この場合は無関係で、さまざまな要因に基づいています。顧客は複数のスコアを持つことができます)を含むテーブルがあります。 customer_id | score | score_giver_id ==================================== 1 | 100 | 1 1 | 102 | 1 1 | 101 | 1 1 | 140 | 1 2 | 131 | 3 1 | 44 | 1 3 | 223 | 1 3 | 1 | 2 3 | 201 …

3
シリーズから各日付をカバーする日付の範囲の数を数える最速の方法
次のようなテーブル(PostgreSQL 9.4)があります。 CREATE TABLE dates_ranges (kind int, start_date date, end_date date); INSERT INTO dates_ranges VALUES (1, '2018-01-01', '2018-01-31'), (1, '2018-01-01', '2018-01-05'), (1, '2018-01-03', '2018-01-06'), (2, '2018-01-01', '2018-01-01'), (2, '2018-01-01', '2018-01-02'), (3, '2018-01-02', '2018-01-08'), (3, '2018-01-05', '2018-01-10'); 次に、指定された日付と種類dates_rangesごとに、各日付の行数を計算します。ゼロはおそらく省略できます。 望ましい結果: +-------+------------+----+ | kind | as_of_date | n | +-------+------------+----+ | 1 | …

2
psql:致命的:ユーザーのピア認証に失敗しました
Ubuntu 15.10にPostgreSQL 9.4をインストールしました。 私はユーザーを作成しました createuser -P myuser 私はデータベースを作成しました createdb -O myuser mydatabase 編集pg_hba.confして追加しましたlocal mydatabase myuser md5 私はPostgreSQLを再起動しました sudo service postgresql restart ユーザーmyuserはPostgresSQLユーザーのみで、Ubuntuにはユーザーアカウントがありません。 でデータベースに接続しようとすると、psql -W mydatabase myuserで失敗しpsql: FATAL: Peer authentication failed for user "myuser"ます。 PostgreSQLが実行中… ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since …

2
SELECTとWHERE句で同じ関数
初心者向けの質問: f(x, y)データベーステーブルの2つの列xとyに高価な関数があります。 関数の結果を列として与え、それに制約を課すようなクエリを実行したいのですが、 SELECT *, f(x, y) AS func FROM table_name WHERE func < 10; しかしこれはうまくいかないので、私は次のようなものを書かなければなりません SELECT *, f(x, y) AS func FROM table_name WHERE f(x, y) < 10; これは高価な関数を2回実行しますか?これを行う最良の方法は何ですか?

1
別のマシンをターゲットとするpg_dump中に「pg_catalog.tablename」を作成する権限が拒否されました
一部のテーブルを9.5ベータ2から9.4.4サーバーにダンプしようとしています。私が使用しているコマンドの形式はかなり標準的です: pg_dump -t table dbname | psql -h hostname -d dbname 私はPostgresユーザーを使用していますが、これはおそらく理想的ではないと思いますが、これらはどちらも私が使用する開発データ処理ボックスであり、以下のエラーに関連しています。最初に、エラーが発生しました エラー:認識されない構成パラメーター "row_security" これは、この機能が9.5で新しく追加されたために予想されます。そうです。Postgresの異なるバージョン間でpg_dumpを実行することはお勧めできませんが、非常にあいまいなバグに遭遇し、大きな静的データの量。 したがって、この恐ろしいハックを使用してrow_securityエラーを削除し、最初のエラーで停止をオンにします。 pg_dump -t tablemame dbname |sed 's/SET row_security = off;//'| psql -v ON_ERROR_STOP=1 -h hostname -d dbname 私は今得ます: エラー:「pg_catalog.tablename」を作成する権限が拒否されました詳細:システムカタログの変更は現在許可されていません Postgresユーザー/ロールを使用することは望ましくないかもしれませんが、私の理解では、このような性質の権限の問題はないはずです。これは1回限りの操作であり、これらはライブサービスに接続されていないデータ処理開発ボックスであるため、理想的な企業データアクセスポリシーよりも好都合です。そうは言っても、これを正しく行う方法を理解し、今後これを回避することは良いことです。


1
jsonb列のginインデックスがクエリの速度を低下させるのはなぜですか?
テストデータを初期化します。 CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE TABLE docs (data JSONB NOT NULL DEFAULT '{}'); -- generate 200k documents, ~half with type: "type1" and another half with type: "type2", unique incremented index and random uuid per each row INSERT INTO docs (data) SELECT json_build_object('id', gen_random_uuid(), 'type', (CASE WHEN random() …

1
PostgreSQL:SSL SYSCALLエラー:EOFが検出されました
最初に、このエラーに関連するいくつかの投稿を検索して見つけましたが、それらのほとんどはRAMの問題かSSLの問題のどちらかを指しているため、コマンドラインにsslmode = disabledを追加してSSLの可能性を克服しようとしました: psql -U waypoint -d waypoint -W -c "alter table telemetria_data.historico alter clase type smallint, alter valor type real[], alter power type smallint, alter voltaje type real;" -h localhost -v sslmode=disable しかし、同じメッセージが表示されました: SSL SYSCALL error: EOF detected connection to server was lost 考えられるメモリの問題について、トラブルシューティングの方法がわかりません。 データ構造はこの質問で説明されているものであり、継承されたすべてのテーブルに対して完全な変更テーブルを完成させるには、非常に長時間実行されるクエリになる可能性があります。 OS: Linux ip-10-1-0-9 3.16.0-4-amd64 …

1
pgAdminはリモート操作で非常に遅い
私の開発サーバーにリモート接続しているローカルのpgAdminからこのクエリを実行します。 select * from users order by random() limit 1; それは17秒間ハングし、表示されます Total query runtime: 148 ms. 1 row retrieved. また、テーブルを右クリックしても、すべての操作でハングします。 その後、RDPを介して接続し、同じpgAdminバージョンで同じクエリを実行しますquery time: 32 ms。これにより、で結果がすぐに表示されます。 次に、ローカルのpgAdminからクエリを再度実行します。 Total query runtime: 337 ms. 1 row retrieved. サーバーに対して130ミリ秒のpingを実行しています。FTP経由でファイルをかなり高速にアップロードできるので、接続速度は十分すぎるはずです。 ローカルのpsqlで実行したときの同じクエリは、接続時間を含めて数秒で終了します。 ローカルのpgAdminでローカルのdbコピーを使用した同じクエリもすぐに終了します。 pgAdminのバージョンは1.20.0です。最新の1.22でも確認しました-まだ同じです。 pgAdminを高速化するにはどうすればよいですか? psqlは正常に動作することに注意してください。そこには同じ待ち時間がありません。 17秒間のクエリ実行のpgAdminログ: 2016-02-06 16:18:03 INFO : queueing : select * from users …

1
インデックスを使用してpostgresでのソートを高速化する方法
私はpostgres 9.4を使用しています。 のmessagesスキーマは次のとおりです。メッセージはfeed_idに属し、posted_atを持っています。また、メッセージには親メッセージを含めることができます(返信の場合)。 Table "public.messages" Column | Type | Modifiers ------------------------------+-----------------------------+----------- message_id | character varying(255) | not null feed_id | integer | parent_id | character varying(255) | posted_at | timestamp without time zone | share_count | integer | Indexes: "messages_pkey" PRIMARY KEY, btree (message_id) "index_messages_on_feed_id_posted_at" btree (feed_id, posted_at DESC NULLS …


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