問題タブ [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 投票する
1 に答える
777 参照

postgresql - Postgreでのテキスト検索クエリの構築

varchars の配列を入力するストアド プロシージャを作成する必要があります。次のような構文を使用してこれらを検索します

tom、dick、harry のようなプロシージャに入力を与えると、クエリは次のように動的に構築されます。

これを実行するとエラーが発生します

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

postgresql - SETOFレコードを返すPostgres関数を呼び出す方法は?

私は次の関数を書きました:

そして、このように呼ぼうとすると...

エラーが発生します:

この出力がわかりません。私もperformを使ってみましたが、関数が何も返さない場合にのみ、performを使用すればよいと思いました。

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

sql - postgresトリガーで「IFステートメント」を使用するにはどうすればよいですか

INSERTS の特定のインスタンス (この場合はif do_backup = true. すべてのインスタンスで起動すると、無限ループが発生します。ロジックは非常に単純に思えますが、関数の残りの部分は機能します。しかし、トリガー関数は私の条件を登録していないようで、backup = trueの場合でも常に実行されます。

0 投票する
5 に答える
12121 参照

postgresql - テーブルの列を動的にループすることは可能ですか?

次のコードスニペットを持つテーブルテストのトリガー関数があります。

そのため、整合性を確保するために、すべての列の新しい値を以前の値と静的にチェックしています。これで、ビジネスロジックが変更され、そのテーブルに新しい列を追加する必要があるたびに、このトリガーを毎回変更する必要があります。どういうわけか、名前を明示的に入力せずに、そのテーブルのすべての列を動的にチェックできるとよいと思いました。

どのようにそれを行うことができますか?

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

sql - 列と列のカウントの冗長な関数呼び出しを削除します

問題

次のクエリでplr_stationsは、 が 2 回呼び出されます。

  1. WHERE句を制限するために 1 回。と
  2. 返された結果の数をカウントするために 1 回。

コードは次のようになります。

このクエリの結果は、日付クエリによって集計されます。

ソリューション

関数呼び出しの結果を一時テーブルまたは配列変数に入力します。

更新 #1

関数呼び出しのパラメーターで定義された球面ポリゴン内にあまりにも多くのステーションが存在する場合、関数呼び出しはステーションのサンプルをランダムに選択します。

アップデート #2

完全なクエリを開始する日付クエリ集計は次のようになります。

質問

他にどのようにして冗長な呼び出しを排除できますか?

ありがとうございました。

0 投票する
3 に答える
46107 参照

postgresql - 以前の DELETE によって影響を受けた行数を含む変数? (関数内)

INSERT トリガーとして使用される関数があります。この関数は、挿入される行と競合する行を削除します。それは美しく機能するので、このコンセプトのメリットについて議論したくありません。

通知に、影響を受ける (別名: 削除される) 行数の表示を追加したいと思います。どうすればそれを行うことができますか (LANGUAGE 'plpgsql' を使用)?

更新: 「チキン・イン・ザ・キッチン」の優れたガイダンスに基づいて、次のように変更しました。

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

postgresql - Pg 関数に渡される列名の決定

私はそのようなPL/pgsql関数を持っています

この機能により、次のようなことができます

できれば、これをより良くしたいと思います。列名を渡す必要はありません。つまり、できるようになりたい

関数に渡された列に基づいて、関数内の列名を見つけます。それは可能ですか?

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

python - Python DataErrorはストアドプロシージャから発生しますが、手動で実行してもエラーは発生しません

このエラーが発生します:

アプリケーションコードを実行するとき。そのクエリを手動で実行すると、すべて問題ありません。この場合、1.50が存在することを知っています。これは、numeric(10,2)として宣言されている関数の変数を介して渡される値です。関数によって返されるのではなく、処理されるだけです。

このクエリはどのようにしてアプリケーションコードでこのエラーをスローしますが、pgadminでは正常に実行できますか?

さて、これがストアドプロシージャです。discount_amountは、エラーが表示される1.50です。

0 投票する
3 に答える
663 参照

php - 比較のためにフィールドをタイムスタンプに変換する

Postres データベースがあり、2 つのタイムスタンプ フィールドを比較したいと考えています。

基本的なクエリ:

タイムスタンプ比較あり:

のサンプル値valu1:
'14:50:15','10:50:15'

valu2:
'11:10:15', '17:50:15'

valu1valu2をタイムスタンプに変換し、後で比較したい。

次の形式でエラーが発生します。

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

postgresql - 副選択として引数を使用して関数を作成します

データを選択して変更するための関数を作成したい

しかし、私は'どの引数タイプがわからないのですか?

やりたいSELECT * FROM PublicatedTask((1,2,3));

ご協力いただきありがとうございます