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

PostgreSQLのすべてのバージョン。そのコンテキストが重要な場合は、postgresql-11などのバージョン固有のタグを追加します。

2
リモートPostgresテーブルをローカルマシンのCSVファイルにエクスポートする
リモートサーバー上のデータベースへの読み取り専用アクセス権があります。だから、私は実行することができます: COPY products TO '/tmp/products.csv' DELIMITER ','; しかし、そのサーバーにはファイルを作成/保存する権限がないため、ローカルマシンでこれを行う必要があります。 リモートデータベースに接続するときに、リモートサーバーではなくローカルマシンにファイルを保存するコマンドを実行するにはどうすればよいですか? または、Linuxコマンドを実行してリモートデータベースに接続し、クエリを実行し、出力をファイルとしてローカルマシンに保存するにはどうすればよいですか?
15 postgresql  export  csv  copy 

1
PostgreSQLでaes-encryptionを使用する方法は?
次のステートメントを使用してaes暗号化を試みました。 SELECT encrypt('test', 'key', 'aes'); うまくいきましたが、値を解読できません。それをデータ型byteaのフィールドに挿入しましたが、それが正しい方法であったかどうかはわかりません。 SELECT decrypt(pw, 'key', 'aes') FROM table WHERE ID = 1; 私にエラーを与えます エラー:関数decrypt(bytea、unknown、unknown)は存在しません LINE 1:SELECT decrypt(pw、 'key'、 'aes')FROM tabelle WHERE ID = 7; ^ ヒント:指定された名前と引数のタイプに一致する関数はありません。明示的な型キャストを追加する必要がある場合があります。 つまり、encrypt()は既存の関数であり、decrypt()ではないということですか?aesで暗号化された値を他にどのように取得できますか?


3
別の月と年の列、または日付が常に1に設定されている日付?
私はPostgresを使用してデータベースを構築していますが、ここではmonthand によってグループ化されますが、によってグループ化されることはありyearませんdate。 整数monthとyear列を作成して使用できます。 または、month_year列を作成し、常にday1に設定することもできます。 前者は誰かがデータを見ている場合は少し単純で明確に見えますが、後者は適切な型を使用する点で優れています。

4
CHARとVARCHAR(Postgres)のインデックスパフォーマンス
この答え(/programming/517579/strings-as-primary-keys-in-sql-database)で、1つの発言が目を引きました: また、インデックスの比較を行うとき、CHARとVARCHARの間に非常に大きな違いがあることが多いことに留意してください これはPostgresに適用されますか? OracleのページCHARは多かれ少なかれエイリアスであるVARCHARと主張しているため、インデックスのパフォーマンスは同じですが、Postgresで決定的なものは何も見つかりませんでした。

2
Postgresの高速ハミング距離クエリ
画像のハッシュを含む大規模なデータベース(16M行)があります。 妥当な時間枠で距離をハミングすることで行を検索できるようにしたいと思います。 現在、私が問題を適切に理解している限り、ここでの最良の選択肢はBK-Treeを実装するカスタムSP-GiST実装だと思いますが、それは多くの作業のように思われ、まだ実用的ではありませんカスタムインデックスの適切な実装の詳細。ハミング距離を計算すると、扱いやすい十分です、と私はやるけれども、Cを知っています。 基本的に、ここでの適切なアプローチは何ですか?ハッシュの特定の編集距離内で一致を照会できる必要があります。私が理解しているように、等しい長さの文字列を持つレーベンシュタイン距離は機能的にハミング距離です。そのため、そこからインデックスを作成する明確な方法はありませんが、少なくともいくつかの既存のサポートがあります(私が照会している値を思い出してください)変更:固定値からの距離を事前に計算することはできません。 ハッシュは現在、ハッシュのバイナリASCIIエンコード(たとえば「10010101 ...」)を含む64文字の文字列として格納されていますが、十分簡単に​​int64に変換できます。本当の問題は、比較的高速にクエリできる必要があるということです。 私が望むものの線に沿って何かを達成することは可能だと思わpg_trgmれますが、トライグラムマッチングメカニズムがどのように機能するかについては少しわかりません(特に、それが返す類似性メトリックは実際に何を表しますか?編集距離のようなもの)。 挿入のパフォーマンスは重要ではありません(各行のハッシュを計算するのは非常に計算コストがかかります)ので、私は主に検索を気にします。

1
log_min_duration_statement設定は無視されます
Postgresql 9.1Ubuntuで実行しています。正確なPostgresqlバージョンは9.1+129ubuntu1、パッケージマネージャーが示すとおりです。 アクティブに使用されている2つのデータベースがあり、それらはリモートサーバーから使用されます。 実行時間が長いクエリを記録したい。だから私は/etc/postgresql/9.1/main/postgresql.confファイルに次のパラメータを設定します log_min_duration_statement = 10000 log_statement = 'mod' そのため、Postgresqlは10秒以上かかるクエリをログに記録します。 しかし、私reloadがpostgres構成を行うと、Postgresqlはlog_statement値に適合するすべてのクエリのログを記録し始めます。確実に持続時間を100秒に設定したこと log_min_duration_statement = 100000 しかし、Postgresqlはlog_statement、値に関係なく、log_min_duration_statement値に適合するすべてのクエリのログを記録し続けます。 ロギングを停止log_statementするnoneように設定する。 構成に関して私が見逃したものはありますか?

3
PostgreSQL 8.4を使用して、postgresでbyteaをテキスト値に変換する方法は?
私のアプリケーションでは、Cコードを使用してデータベースにデータを挿入します。信頼できないソースから受け取った文字列PQescapeByteaConnはlibpqライブラリを使用してエスケープしているためです。これは完全に正常に機能しています。つまり、Octet形式の文字列になります。以下の例を参照してください、 入力文字列: \n\t\f\b\p\k\j\l\mestPrepared 出力文字列: \\012\\011\\014\\010pkjlmestPrepared 出力文字列がデータベースに挿入されます。次に、JDBCを使用してJavaコードでデータベースからそのデータを取得します。文字列を元の値に戻すにはどうすればよいですか? 私は2つの可能なアプローチを考えました、 データベース検索クエリを変更し、このフィールドをpostgresの文字列操作関数、つまりbyteaをテキストに変換できる関数に渡します。 Javaコードでデコードを行います。 アプローチ1の方が効率的であることを理解できます。ここにリストされているほとんどすべての機能を試しましたが、何も機能していません。助けてください!! Linuxマシンでpostgresのバージョン8.4を使用しています。

4
ゼロ行が一致する場合でも、SELECTが定数値を返すようにする
次の選択ステートメントを検討してください。 SELECT *, 1 AS query_id FROM players WHERE username='foobar'; プレーヤーの他の列query_idとともに値を1持つ列を返します。 selectが一致する行を検出しなかった場合でも、上記のSQLに少なくともquery_idofを返させるにはどう1すればよいですか? ところで、それはPostgreSQL 8.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 9.3データベースに2つのテーブルがあります。テーブルにlink_replyは、which_groupテーブルを指すという名前の外部キーがありますlink_group。 link_group関連する行がlink_reply存在しない場所からすべての行を削除したい。基本的には十分に聞こえますが、私はそれに苦労しています。 これはこのように単純なものになりますか(機能しません)? DELETE FROM link_group WHERE link_reply = 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
Postgresqlでディスクスペースがいっぱいになった場合の対処
postgresql 9.3.10バックエンド(Linux OSに搭載)を備えたDjango Webアプリケーションがあります。ディスクがいっぱいになったエラーが発生したため、テーブルを切り捨てようとしても、次のようなエラーが発生します。 ERROR: could not extend file "base/30137/33186048": No space left on device HINT: Check free disk space. サーバーにディスクスペースを簡単に追加することも、このVM上のものを削除することもできません。ただし、切り捨ての候補となるいくつかのテーブルがありますが、今はそれらを切り捨てることもできないようです。 誰も私がここでできることについてアドバイスをくれますか?これは本番サーバーに大きな打撃を与えており、私はここで少し偶然のDBAをしているので、まったく困惑しています。

2
postgresの遅延可能な一意のインデックス
alter tableのpostgresのドキュメントを見ると、通常の制約はDEFERRABLE(より具体的には、INITIALLY DEFERRED、これが私が興味を持っていることです)。 次の条件を満たしている限り、インデックスを制約に関連付けることもできます。 インデックスには式列を含めることも、部分インデックスにすることもできません そのため、現在、次のような条件付きの一意のインデックスを作成する方法はないと考えています。 CREATE UNIQUE INDEX unique_booking ON public.booking USING btree (check_in, check_out) WHERE booking_status = 1; であるためにINITIALLY DEFERRED(場合一意「制約」は唯一のトランザクションの最後に検証されることを、意味し、SET CONSTRAINTS ALL DEFERRED;使用されています)。 私の仮定は正しいですか、もしそうなら、意図した動作を達成する方法はありますか? ありがとう

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