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

Postgres nie rozpoznaje tabeli temp w funkcji

Postgres przeprowadza proste testy funkcji, którą próbujesz utworzyć i stwierdza (poprawnie), że tabela work_list nie istnieje (jeszcze). Widzę dwie opcje:

1. „Udawaj, aż ci się uda”

Właściwie utwórz (tymczasową) tabelę przed utworzeniem funkcji. Tabela tymczasowa zniknie na koniec sesji, ale po utworzeniu funkcji zdałeś ten test na dobre.
Oczywiście, przed uruchomieniem funkcji w tym samym miejscu musisz usunąć tę tabelę. sesja, aby uniknąć konfliktu. Lepiej jednak:użyj UTWÓRZ TABELĘ TEMP, JEŚLI NIE ISTNIEJE w Twojej funkcji (Postgres 9.1+). Możesz skrócić tabelę, jeśli już istnieje...

Jednak (patrz komentarze poniżej), cytując instrukcję

Pogrubiony nacisk na moje.

2. Zamiast tego użyj PL/pgSQL

Kontrole są mniej dokładne w plpgsql. Jeśli Postgres nadal narzeka (a nie w tym przypadku), możesz również wykonywanie SQL dynamicznie z EXECUTE .

Na bok:w wielu przypadkach istnieje bardziej wydajne rozwiązanie bez tabeli tymczasowej za rogiem ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eksportuj dane tabeli Postgresql za pomocą pgAdmin

  2. Jak przekonwertować numpy NaN obiekty na wartości null SQL?

  3. Aplikacja Simple Rails:Błąd nie może odwiedzić liczby całkowitej

  4. Odniesienie do kolumny Postgres ON CONFLICT jest niejednoznaczne

  5. PostgreSQL - nie można zidentyfikować operatora równości dla typu json