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

PostgreSQL-SELECTを実行するときに外部キーが存在することを確認します

    PL / pgSQLの機能を活用して、これを非常に安価に実装できます。

    CREATE OR REPLACE FUNCTION f_select_from_some_tbl(int)
      RETURNS SETOF some_table AS
    $func$
    BEGIN
       RETURN QUERY
       SELECT * 
       FROM   some_table 
       WHERE  other_table_id = $1;
    
       IF NOT FOUND THEN
          RAISE WARNING 'Call with non-existing other_table_id >>%<<', $1;
       END IF;
    END
    $func$  LANGUAGE plpgsql;
    

    最後のRETURN; この場合はオプションです。

    WARNING クエリが行を返さない場合にのみ発生します。 ERRORを発生させていません この例では、これによりトランザクション全体がロールバックされるためです(ただし、ニーズに合っている場合はロールバックできます)。

    コード例を追加しましたPostgres9.3のマニュアルへ これを実証するために。



    1. PostgreSQLのマテリアライズドビューの権限と権限を一覧表示します

    2. ウィンドウ関数はSORTコストがかかりますが、それを克服できますか?

    3. st_intersectionが非ポリゴンを返すのはなぜですか?

    4. データベースがテーブルを取っていない