sql >> データベース >  >> RDS >> PostgreSQL

温度関数などはありますか?

    CREATE TEMP FUNCTION ...はありません 既存のCREATE TEMP TABLE ...のように 。ただし、一時スキーマpg_tempに関数を作成するコツがあります。 、リンクされた回答が提供する のように 。この関数は同じセッション内でのみ表示され、スキーマ修飾名でのみ呼び出すことができます:

    CREATE FUNCTION pg_temp.f_inc(int)
      RETURNS int AS 'SELECT $1 + 1' LANGUAGE sql IMMUTABLE;
    
    SELECT pg_temp.f_inc(42);
    f_inc
    -----
    43

    このアイデアは、トムレーンによるこの投稿にまでさかのぼることができます。 pgsql-general

    トリックのない最も近いものは、準備されたステートメントです。 。 一時的なSQL関数のように機能します それはセッションの終わりに死にます。 同じではありません ただし、これは単独でのみ使用でき、より大きなクエリのコンテキストでは使用できません。例:

    PREPARE upd_tbl AS
    UPDATE tbl t SET set_name = $2 WHERE tbl_id = $1;
    

    電話:

    EXECUTE upd_tbl(123, 'foo_name');
    

    詳細:




    1. バインドされたパラメータを複数回使用する

    2. SQLクエリ、平均上昇、および最も多くのピークを上昇したペア

    3. PHPがMYSQLクエリの結果を表示しない

    4. A1をA2としてCREATETABLELIKE A1