問題タブ [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.
postgresql - Postgreでのテキスト検索クエリの構築
varchars の配列を入力するストアド プロシージャを作成する必要があります。次のような構文を使用してこれらを検索します
tom、dick、harry のようなプロシージャに入力を与えると、クエリは次のように動的に構築されます。
これを実行するとエラーが発生します
postgresql - SETOFレコードを返すPostgres関数を呼び出す方法は?
私は次の関数を書きました:
そして、このように呼ぼうとすると...
エラーが発生します:
この出力がわかりません。私もperformを使ってみましたが、関数が何も返さない場合にのみ、performを使用すればよいと思いました。
sql - postgresトリガーで「IFステートメント」を使用するにはどうすればよいですか
INSERTS の特定のインスタンス (この場合はif do_backup = true
. すべてのインスタンスで起動すると、無限ループが発生します。ロジックは非常に単純に思えますが、関数の残りの部分は機能します。しかし、トリガー関数は私の条件を登録していないようで、backup = trueの場合でも常に実行されます。
postgresql - テーブルの列を動的にループすることは可能ですか?
次のコードスニペットを持つテーブルテストのトリガー関数があります。
そのため、整合性を確保するために、すべての列の新しい値を以前の値と静的にチェックしています。これで、ビジネスロジックが変更され、そのテーブルに新しい列を追加する必要があるたびに、このトリガーを毎回変更する必要があります。どういうわけか、名前を明示的に入力せずに、そのテーブルのすべての列を動的にチェックできるとよいと思いました。
どのようにそれを行うことができますか?
sql - 列と列のカウントの冗長な関数呼び出しを削除します
問題
次のクエリでplr_stations
は、 が 2 回呼び出されます。
WHERE
句を制限するために 1 回。と- 返された結果の数をカウントするために 1 回。
コードは次のようになります。
このクエリの結果は、日付クエリによって集計されます。
ソリューション
関数呼び出しの結果を一時テーブルまたは配列変数に入力します。
更新 #1
関数呼び出しのパラメーターで定義された球面ポリゴン内にあまりにも多くのステーションが存在する場合、関数呼び出しはステーションのサンプルをランダムに選択します。
アップデート #2
完全なクエリを開始する日付クエリ集計は次のようになります。
質問
他にどのようにして冗長な呼び出しを排除できますか?
ありがとうございました。
postgresql - 以前の DELETE によって影響を受けた行数を含む変数? (関数内)
INSERT トリガーとして使用される関数があります。この関数は、挿入される行と競合する行を削除します。それは美しく機能するので、このコンセプトのメリットについて議論したくありません。
通知に、影響を受ける (別名: 削除される) 行数の表示を追加したいと思います。どうすればそれを行うことができますか (LANGUAGE 'plpgsql' を使用)?
更新: 「チキン・イン・ザ・キッチン」の優れたガイダンスに基づいて、次のように変更しました。
postgresql - Pg 関数に渡される列名の決定
私はそのようなPL/pgsql関数を持っています
この機能により、次のようなことができます
できれば、これをより良くしたいと思います。列名を渡す必要はありません。つまり、できるようになりたい
関数に渡された列に基づいて、関数内の列名を見つけます。それは可能ですか?
python - Python DataErrorはストアドプロシージャから発生しますが、手動で実行してもエラーは発生しません
このエラーが発生します:
アプリケーションコードを実行するとき。そのクエリを手動で実行すると、すべて問題ありません。この場合、1.50が存在することを知っています。これは、numeric(10,2)として宣言されている関数の変数を介して渡される値です。関数によって返されるのではなく、処理されるだけです。
このクエリはどのようにしてアプリケーションコードでこのエラーをスローしますが、pgadminでは正常に実行できますか?
さて、これがストアドプロシージャです。discount_amountは、エラーが表示される1.50です。
php - 比較のためにフィールドをタイムスタンプに変換する
Postres データベースがあり、2 つのタイムスタンプ フィールドを比較したいと考えています。
基本的なクエリ:
タイムスタンプ比較あり:
のサンプル値valu1
:
'14:50:15'
,'10:50:15'
valu2
:
'11:10:15'
, '17:50:15'
valu1
とvalu2
をタイムスタンプに変換し、後で比較したい。
次の形式でエラーが発生します。
postgresql - 副選択として引数を使用して関数を作成します
データを選択して変更するための関数を作成したい
しかし、私は'どの引数タイプがわからないのですか?
やりたいSELECT * FROM PublicatedTask((1,2,3));
ご協力いただきありがとうございます