PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL - Sprawdź, czy klucz obcy istnieje podczas wykonywania SELECT

Możesz wykorzystać funkcję PL/pgSQL, aby zaimplementować to bardzo tanio :

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;

Ostateczny RETURN; jest w tym przypadku opcjonalne.

WARNING jest wywoływane tylko wtedy, gdy zapytanie nie zwraca żadnych wierszy. Nie zgłaszam ERROR w tym przykładzie, ponieważ spowoduje to wycofanie całej transakcji (ale możesz to zrobić, jeśli odpowiada to Twoim potrzebom).

Dodaliśmy przykładowy kod do instrukcji z Postgresem 9.3 aby to zademonstrować.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę przekonwertować wszystkie kolumny w mojej bazie danych na niewrażliwe na wielkość liter?

  2. Konwertuj dzień juliański na datę w PostgreSQL

  3. Skróty pgAdmin do wykonywania skryptów

  4. Transakcja nie obsługuje równoległych poleceń za pośrednictwem Task.WhenAll

  5. impas postgresql