Get id von INSERT oder SELECT
Ich habe diese Funktion, die eine Zeile in ein @ fücity
Tabelle ohne Duplikate. Es gibt die ID der eingefügten Zeile zurück:
CREATE OR REPLACE FUNCTION public.insert_city(
character varying,
character varying,
character varying,
character varying,
character varying,
character varying)
RETURNS integer AS
$BODY$
DECLARE
name_city1 ALIAS FOR $1;
country1 ALIAS FOR $2;
province1 ALIAS FOR $3;
region1 ALIAS FOR $4;
cap1 ALIAS FOR $5;
nationality1 ALIAS FOR $6;
id_city1 integer;
BEGIN
INSERT INTO city (name_city, country, province, region, cap, nationality)
SELECT name_city1, country1, province1, region1, cap1, nationality1
WHERE NOT EXISTS (SELECT id_city FROM city WHERE name_city = name_city1)
RETURNING id_city INTO id_city1;
-- xxx
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
xxx
markiert die Stelle, an der ich etwas brauche:
IF is_number(id_city1) THEN
RETURN id_city1;
ELSE
RETURN query select id_city from city where name_city=name_city1;
END IF;
Wenn die erste Abfrage keine neue Zeile einfügt und ich kein @ erhalid_city
davon möchte ich die zweite Abfrage ausführen, um ein vorhandenes @ auszuwählid_city
.
Wie kann ich das machen