PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ausführungsprozess von Postgresql-Funktionen

Aus Sicherheitsgründen gibt pg_dump (oder pg_restore) einen Befehl aus, der den Suchpfad leert, sodass der Prozess beim Wiederherstellen mit einem leeren Suchpfad ausgeführt wird. Der Textkörper Ihrer Funktion wird jedoch überhaupt nicht bearbeitet, sondern so ausgegeben, wie er ist, sodass er nicht geändert werden kann, um den vollständig qualifizierten Namen der Tabelle anzugeben. Daher kann die Funktion die Tabelle nicht finden, wenn sie innerhalb des Prozesses ausgeführt wird, der die Wiederherstellung durchführt.

Sie können den Tabellennamen in der Funktion vollständig qualifizieren oder die Funktion mit SET search_path = public definieren . Oder Sie können die Speicherauszugsdatei bearbeiten, um den Teil zu entfernen, der den Suchpfad löscht, wenn Sie sich keine Sorgen über die Auswirkungen auf die Sicherheit machen.