Der bereitgestellte Fehler: „FEHLER: 42601: Für Funktionen, die „Datensatz“ zurückgeben, ist eine Spaltendefinitionsliste erforderlich. Dieser Fehler tritt häufig auf, wenn eine PostgreSQL-Funktion erstellt wird, die eine Rückgabe versucht einen Datensatz, ohne die Spaltenstruktur explizit zu definieren.
Um diesen Fehler zu beheben, verwenden Sie die RETURNS TABLE-Syntax, um die Struktur der zurückgegebenen Daten anzugeben durch die Funktion. Hier ist ein Beispiel:
CREATE OR REPLACE FUNCTION get_user_by_username( username VARCHAR(250), online BOOLEAN ) RETURNS TABLE ( user_id INTEGER, user_name VARCHAR(250), last_activity TIMESTAMP ) AS $$ ...
In diesem Beispiel gibt die Funktion get_user_by_username eine Tabelle mit drei Spalten zurück: Benutzer-ID, Benutzername und letzte_Aktivität.
Alternativ können Sie die spezifischen Spalten angeben, die von der Funktion zurückgegeben werden RETURNS SETOF wie folgt:
CREATE OR REPLACE FUNCTION get_user_by_username( username VARCHAR(250), online BOOLEAN ) RETURNS SETOF ( user_id INTEGER, user_name VARCHAR(250), last_activity TIMESTAMP ) AS $$ ...
Hier sind ein paar zusätzliche Überlegungen, die Sie beachten sollten:
Das obige ist der detaillierte Inhalt vonWarum gibt PostgreSQL den Fehler 42601 aus: „Für Funktionen, die „Datensatz' zurückgeben, ist eine Spaltendefinitionsliste erforderlich'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!