相关疑难解决方法(0)

PL/pgSQL列名与变量相同

我是plpgsql的新手,我正在尝试创建一个函数来检查表中是否存在某个值,如果不存在则会添加一行.

CREATE OR REPLACE FUNCTION hire(
    id_pracownika integer,
    imie character varying,
    nazwisko character varying,
    miasto character varying,
    pensja real)
  RETURNS TEXT AS
$BODY$
DECLARE
wynik TEXT;
sprawdzenie INT;
BEGIN
sprawdzenie = id_pracownika;
IF EXISTS (SELECT id_pracownika FROM pracownicy WHERE id_pracownika=sprawdzenie) THEN
wynik = "JUZ ISTNIEJE";
RETURN wynik;
ELSE
INSERT INTO pracownicy(id_pracownika,imie,nazwisko,miasto,pensja)
VALUES (id_pracownika,imie,nazwisko,miasto,pensja);
wynik = "OK";
RETURN wynik;   
END IF;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
Run Code Online (Sandbox Code Playgroud)

问题是我收到错误,说这id_pracownika是一个列名和一个变量.

如何在这种上下文中指定"id_pracownika"是指列名?

postgresql plpgsql uniqueidentifier race-condition

5
推荐指数
1
解决办法
4383
查看次数