問題タブ [plpgsql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6226 参照

python - Psycopg2 callproc および sql パラメーター

私はいくつかのSQL関数を手に入れました

そしてPsycopg2から(それが重要な場合はDjangoの内部にあります)私はそうします

ただし、関数は、結果と OUT パラメータを無視して、指定したものとまったく同じ入力シーケンスを返します。IN OUT に変更し、いくつかの foo 値を渡しても何も変わりません。データベース内で呼び出された場合、SQL 関数は期待どおりに動作します

0 投票する
2 に答える
3999 参照

postgresql - postgresql: EXECUTE の動的コマンドで NEW.* を使用する

id列による挿入前にテーブルを自動的に分割するpostgresql 8.3用のplpgsqlトリガーを作成しようとしています

宛先テーブルが存在しない場合は作成され、そこに挿入されます

だから私はこのような新しいテーブル名で挿入ステートメントを作成しました

エラーが発生します:

2 つの質問があります。

  1. EXECUTE で NEW を使用することさえ可能ですか、それともステートメントに間違いがありますか?
  2. それが不可能な場合は、ステートメントで値を使用できるように、NEW から値を取得する方法を誰かが知っていますか? 私の頭に浮かぶ唯一のことは、 information_schema を使用してメインテーブルの列名を取得し、次に NEW の値に動的にアクセスしようとすることです-これも方法がわかりません:(

どうも

0 投票する
1 に答える
1202 参照

postgresql - SELECTおよびFUNCTIONに基づいてフィールドを更新するPostgreSQLおよびpl/pgsql SYNTAX(whileループ、DISTINCT COUNT)

大規模なデータベースがあり、新しいフィールドを更新するためのロジックを実行したいと考えています。

主キーはidテーブルharvard_assignees用です

ロジックはこのようになります

  1. に基づいてすべてのレコードを選択しますid
  2. 各レコード(WHILE)について、if (state is NOT NULL && country is NULL), update country_out = "US" ELSE update country_out=country

ステップ1をPostgreSQLクエリとして、ステップ2を関数として見ています。正確な構文でネイティブに実装する最も簡単な方法を見つけようとしているだけです。

==== 2番目の関数はもう少し興味深いもので、必要です(私は信じています)DISTINCT

  1. すべてのDISTINCTforeign_keys(pat_type、patentの2変量キー)を検索します
  2. その値を含むレコードをカウントします(たとえば、n =3レコードにはfkey"D"、 "388585"があります)
  3. これらの3つのレコードを更新して、パーセントを1 / nとして識別します(たとえば、UPDATE 3レコード、パーセント= 1/3に設定)
0 投票する
3 に答える
28958 参照

postgresql - postgresql関数またはトリガーからhttpリクエストを送信するにはどうすればよいですか?

関数またはトリガーからhttpプロトコル(GETまたはPOSTリクエスト)を介してデータを送信する必要があります。出来ますか?

0 投票する
2 に答える
4522 参照

sql - この T-SQL コードを PostgreSQL / plpgsql に変換する方法

次の tsql 関数コードを plpgsql 関数に変換する必要がありますが、その方法がまったくわかりません。

ここに全引用があります:

0 投票する
1 に答える
4738 参照

sql - plpgsqlでの多次元varchar/text配列の作成(postgres)

サーバー側のコードからデータベースに取得したい機能がいくつかあります。

plpgsqlで多次元varchar配列の値を設定する方法がわかりません。

これが私がやろうとしていることの例です:

私の人生のために、私はこれを機能させる方法を理解することができません。

どんな助けでも素晴らしいでしょう。ちなみに私はpostgres8.1を使用しています(そのバージョンでスタックしています)。

0 投票する
1 に答える
2475 参照

sql - 有向グラフをトラバースし、見つかったすべてのエッジを返すための PostgreSQL SQL または PL/pgSQL クエリ

私は複雑な SQL クエリを生成することに特に慣れておらず、ネットワーク トラバーサル用の再帰クエリを考案する際に、手続き型言語とセットベースの操作の理解を組み合わせるのに苦労しています。有向グラフの深さ優先検索を実行して、特定のノードの「上流」にある一連のエッジを見つけたいと考えています (各ノードには複数の上流エッジを含めることができます)。これを SQL で実装するのが理想的です。

私がやりたいことの擬似コードは次のようになります。

純粋な SQL で次の関数を既に作成しました。

WITH RECURSIVEしかし、上記の疑似コードを PostgreSQLクエリまたは PL/pgSQL 関数に変換するときに、スコープと戻り値の型を管理する方法を理解するのに苦労しています。私が見たWITH RECURSIVEクエリの例のほとんどは、各ノードが親を 1 つしか持たないツリーをトラバースするために考案されたものです。これについての最善の方法について、誰かヒント/アドバイスはありますか?

乾杯、

意思

0 投票する
1 に答える
247 参照

sql - NEW ステートメントを使用した PSQL 行の更新

INSERT INTO some_table VALUES (NEW.*) in pl/pgsql 同様のことを行うことができますが、 NEW を使用する UPDATE 句に対しては可能ですか? つまり、NEW オブジェクトの値を使用して一部の行を更新したいということです。

前もって感謝します。

0 投票する
8 に答える
85079 参照

postgresql - エラー: 引用符で囲まれた文字列が終了していません。

ANT を使用して以下に示すトリガー コードを実行すると、エラーが発生します

PGADmin (postgres が提供) とコマンド ライン ユーティリティ "psql" を介して以下のコードを正常に実行でき、トリガー関数が追加されますが、ANT を介して実行している間は毎回失敗します。

0 投票する
1 に答える
367 参照

performance - 別のSETOF関数の結果を返すSETOF戻り関数のパフォーマンス?

2つの引数を取り、SETOFの結果を返す関数を作成しました。

CREATE FUNCTION foo(parentId bigint、childId bigint)RETURNS SETOF barAS..。

この関数の呼び出しを簡単にする2つの「ラッパー」を作成したいと思います。

FOO()postgresは、が呼び出されたときの結果を直接返すのに十分スマートですか、それとも実行中FOO_CHILD()にすべての結果をコピーしてからそれらの結果を返しますか?FOO()FOO_CHILD()

pgplsqlが末尾呼び出しの最適化を行うかどうかを尋ねていると思います!

編集:私はPostgres8.2を使用しています。