CREATE OR REPLACE FUNCTION hire(
id_pracownika integer
, imie varchar
, nazwisko varchar
, miasto varchar
, pensja real)
RETURNS TEXT AS
$func$
BEGIN
IF EXISTS (SELECT 1 FROM pracownicy p
WHERE p.id_pracownika = hire.sprawdzenie) THEN
RETURN 'JUZ ISTNIEJE'::text;
ELSE
INSERT INTO pracownicy(id_pracownika,imie,nazwisko,miasto,pensja)
VALUES (hire.sprawdzenie,hire.imie,hire.nazwisko,hire.miasto,hire.pensja);
RETURN 'OK'::text;
END IF;
END
$func$ LANGUAGE plpgsql;
@pozs, , , , .
, INSERT . , .
@Frank , , , .
, ALIAS . , ALIAS .
: $1 id_pracownika .
:
SELECT INSERT
"SELECT INSERT" - UPSERT, , . ( , , , !) :
UPSERT Postgres 9.5
Postgres ( ) UPSERT Postgres 9.5. Wiki Postgres. :
INSERT INTO pracownicy(id_pracownika,imie,nazwisko,miasto,pensja)
VALUES (hire.sprawdzenie,hire.imie,hire.nazwisko,hire.miasto,hire.pensja);
ON CONFLICT DO NOTHING
RETURNING 'OK'::text;
IF NOT FOUND THEN
RETURN 'JUZ ISTNIEJE'::text;
END IF;