sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL - Při provádění SELECT zkontrolujte existenci cizího klíče

Můžete využít funkci PL/pgSQL a implementovat to velmi levně :

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;

Poslední RETURN; je v tomto případě volitelný.

WARNING se vyvolá pouze v případě, že váš dotaz nevrací žádné řádky. Nezobrazuji ERROR v tomto příkladu, protože by to vrátilo celou transakci zpět (ale můžete to udělat, pokud to vyhovuje vašim potřebám).

Přidali jsme příklad kódu k příručce s Postgres 9.3 to demonstrovat.



  1. Automaticky inkrementovaná hodnota nefunguje v PostgreSQL při použití EntityFramework Core

  2. Formáty data MySQL - obtížnost vložení data

  3. Nelze se připojit k hostitelské databázi MySQL v aplikaci nasazené do CloudBees

  4. Laravel 5.4 Kombinace dvou kolekcí