Ich versuche, eine Funktion zu erstellen, die setof Datensatz zurückgibt. Ich möchte die Funktion wie folgt verwenden:Wie man Datensatz von der Funktion zurückgibt?
SELECT city_name FROM set_city(1, 1, 'ExampleName');
Meine Funktion:
CREATE OR REPLACE FUNCTION set_city(_city_id integer, _country_id integer, _city_name varchar)
RETURNS SETOF RECORD
LANGUAGE plpgsql
as $$
DECLARE
result record;
BEGIN
IF EXISTS (SELECT 1 FROM geo_cities gc WHERE gc.id = _city_id)
THEN
UPDATE geo_cities
SET country_id = _country_id, city_name = _city_name
WHERE id = _city_id
RETURNING * INTO result;
ELSE
INSERT INTO geo_cities(id, country_id, city_name)
VALUES (_city_id, _country_id, _city_name)
RETURNING * INTO result;
END IF;
-- It's wrong
RETURN QUERY SELECT result;
END;
$$
Was sollte ich ändern?